0
我有一個IEnumerable類的集合,第二個IEnumerable集合包含一個返回相同的函數。例如:將IEnumerable <T>與IEnumerable比較IEnumerable <IEnumerable <T>>
IEnumerable<MyClass1> list1;
IEnumerable<MyClass2> list2;
MyClass2包含MyClass1的內部集合,並具有功能如下:
Public MyClass2
{
private IEnumerable<MyClass1> internalCollection;
public IEnumerable<MyClass1> ReturnDuplicates(IEnumerable<MyClass1> duplicates
{
return internalCollection.Where(l => duplicates.Select(d => d.ID).ToString() == l.ID.ToString());
}
...
}
然後我有一個函數來比較兩個:
// Function to return a flag indicating if the two lists contain
// any of the same data
public bool CheckDuplicates(IEnumerable<MyClass1> col1, IEnumerable<MyClass2> col2)
{
// The following check is wrong as it returns null
IEnumerable<MyClass1> dupe =
col2.Where(w => w.ReturnDuplicates(col1).Count() != 0)
as IEnumerable<MyClass1>;
return (dupe.Count() != 0);
}
的CheckDuplicates()中的上述語句返回null。然而,在即時窗口:
col2.First().ReturnDuplicates(col1).Count()
返回1
我想我知道了問題的原因 - 該語句返回
IEnumerable<MyClass2>
所以是這種檢查可能的無foreach語句?
(使用代碼格式化消除了對'Generic'名稱中不自然間距的需要) –
AakashM