對於兩個具有兩個不同類但公用字段的List有可能使用Except()
嗎?我有List<User1>
和List<User2>
集合。他們有不同的屬性,除了Id列,我想使用此Id列找到他們之間的不同記錄。我試圖用List<>.Except()
但我得到這個錯誤:具有公共字段的不同類之間的IEnumerable.Except()
The type arguments for method 'System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerable)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
這裏的我想要什麼:
List<User1> list1 = List1();
List<User2> list2 = List2();
var listdiff = list1.Except(list2.Select(row => row.Id));
我在做什麼錯?
+1如果你做出'list2',而不是'list1'查找。或者沒有查找var listdiff = list1.Where(user =>!(list2.Any(user2 => user2.Id == user.Id));' – 2010-11-01 16:19:03
Yup注意到幾分鐘前的錯誤 – 2010-11-01 16:20:43
+1:好東西,效率也會很高。 – Ani 2010-11-01 16:26:36