Основной вопрос:C# LINQ - Сравнение IEnumerable <string> с анонимным списком?
У меня есть:
- IEnumerable lišta.
- вар LISTB (это anonmyous список генерируется запрос LINQ)
Я хочу запросить список объектов, которые содержат lišta, чтобы увидеть, если они совпадают с LISTB:
- someObjectList. Где (x => 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;}
}
}
Я тогда итерация через listGroup и добавление в общий список <> из SomeObject:
foreach(var item in listGroup)
{
SomeObject so = new SomeObject();
...do some stuff
if(some match occurs then add into List<SomeObject>)
}
as i iterate through then, я хочу проверить существующий список для совпадений:
var record = someObjectList.Where(x => x.NAME == item.NAME && x.ListOfDates == item.listOfDates).SingleOrDefault();
Проблема заключается в том, что сравнение x.ListOfDates против item.listOfDates не работает. Ошибки компилятора отсутствуют, но я подозреваю, что список возвращаемых значений отличается. Как мне получить списки, чтобы их можно было сравнить, чтобы их можно было сравнить?
Update1
Это похоже на работу, чтобы получить listOfDates в подобный формат:
IENumberable<DateTime> tempList = item.listOfDates.Select(x => x.DATE).ToList()
Тогда я последовал за '' SequenceEqual предложения от Берланда @ Matt
Я пробовал, но получаю эту ошибку: не удается преобразовать из 'System.Collections.Generic.IEnumerable' до 'System.Linq.ParallelQuery ' –