Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C LINQ-将IEnumerable与anonmyous列表进行比较?_C#_Linq_List_Generics_Ienumerable - Fatal编程技术网

C# C LINQ-将IEnumerable与anonmyous列表进行比较?

C# C LINQ-将IEnumerable与anonmyous列表进行比较?,c#,linq,list,generics,ienumerable,C#,Linq,List,Generics,Ienumerable,基本问题: 我有: IEnumerable listA。 var listB这是由LINQ查询生成的anonmyous列表 我想查询包含listA的对象列表,查看它们是否与listB匹配: someObjectList.Wherex=>x.listA==listB 比较不起作用-那么如何确保两个列表的比较类型相同 详细问题: 我将一个较大的列表分组为包含名称和相关日期的子集 var listGroup = from n in list group n by new { n.NAME }

基本问题:

我有:

IEnumerable listA。 var listB这是由LINQ查询生成的anonmyous列表 我想查询包含listA的对象列表,查看它们是否与listB匹配:

someObjectList.Wherex=>x.listA==listB 比较不起作用-那么如何确保两个列表的比较类型相同

详细问题:

我将一个较大的列表分组为包含名称和相关日期的子集

var listGroup = from n in list group n by new
   { n.NAME  } into d
   select new
   {
      NAME = d.Key.NAME, listOfDates = from x in d select new
                                     { Date = x.DATE } };
我有一个对象来保存值以供进一步处理:

class SomeObject
{
        public SomeObject()
        {
            _listOfDates = new List<DateTime>();
         }

     private IENumerable<DateTime> _listOfDates;
     public IENumerable<DateTime> ListOfDates
     {
           get {return _listOfDates;}
           set {_listOfDates = value;}
     }

 }
问题在于,将x.ListOfDates与item.ListOfDates进行比较是行不通的。没有编译器错误,但我怀疑返回值列表不同。如何使列表变得通用,以便进行比较

更新1

这似乎可以将日期列表转换为类似的格式:

IENumberable<DateTime> tempList = item.listOfDates.Select(x => x.DATE).ToList()
然后,我按照@Matt Burland的“SequenceEqual”建议进行了操作。你可以将一个IEnumerable与另一个IEnumerable进行比较,你需要比较序列。幸运的是,静态方法和扩展方法的风格都可以在这里使用

比如:

var record = someObjectList
    .Where(x => x.NAME == item.NAME &&  x.ListOfDates.SequenceEquals(item.listOfDates))
    .SingleOrDefault();

我尝试了,但出现了以下错误:无法从“System.Collections.Generic.IEnumerable”转换为“System.Linq.ParallelQuery”
IENumberable<DateTime> tempList = item.listOfDates.Select(x => x.DATE).ToList()
var record = someObjectList
    .Where(x => x.NAME == item.NAME &&  x.ListOfDates.SequenceEquals(item.listOfDates))
    .SingleOrDefault();