c# – 具有公共字段的不同类之间的IEnumerable.Except()

c# – 具有公共字段的不同类之间的IEnumerable.Except(),第1张

概述是否可以对两个具有两个不同类但具有公共字段的Lis​​t使用Except()?我有List< User1>和列表< User2>集合.它们具有除Id列以外的不同属性,我想使用此Id列找到它们之间的不同记录.我正在尝试使用List<> .Except()但我收到此错误: The type arguments for method ‘System.Linq.Enumerable.Except(Syst 是否可以对两个具有两个不同类但具有公共字段的lis​​t使用Except()?我有List< User1>和列表< User2>集合.它们具有除ID列以外的不同属性,我想使用此ID列找到它们之间的不同记录.我正在尝试使用List<> .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));

我究竟做错了什么?

解决方法 List1包含User1的实例,List2包含User2的实例.

List1.Except应该生成什么类型​​的实例(List2.Select(row => row.ID))?
换句话说,如果类型推断不可用,你会用什么代替var?

如果User1和User2继承自相同的祖先(带有ID),请使用List< User>代替.

除此以外:

var List2Lookup = List2.Tolookup(user => user.ID);var Listdiff = List1.Where(user => (!List2Lookup.Contains(user.ID))
总结

以上是内存溢出为你收集整理的c# – 具有公共字段的不同类之间的IEnumerable.Except()全部内容,希望文章能够帮你解决c# – 具有公共字段的不同类之间的IEnumerable.Except()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1240356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存