基于列的两个列表的并集

J. *_*son 1 c# t-sql linq linq-to-sql

我正在使用 Linq to Sql 合并两个列表。使用 List1 和 List2:

 var tr = List1.Union(List2).ToList();
Run Code Online (Sandbox Code Playgroud)

Union 工作正常,但问题是它正在检查每一列并删除我想要的一些行。所以我想知道是否有一种方法可以仅基于id每个列表的一列执行联合?

就像是:

var t = List1.id.Union(List2.id).ToList();
Run Code Online (Sandbox Code Playgroud)

这不起作用,但我想知道是否有办法做到这一点,无论是使用 LINQ 还是 T-SQL

Rap*_*aus 5

您应该使用此Union () 重载(使用自定义相等比较器),或类似以下内容:

list1.Concat(list2).GroupBy(x => x.DateProperty).Select(m => m.First());
Run Code Online (Sandbox Code Playgroud)

第一种解决方案当然更有效。