Linq联接后如何获取“剩余”记录

时间:2019-05-13 18:27:41

标签: c# linq join

我正在使用某些条件将两个对象列表合并为一个新列表。加入后,获取剩余未加入的剩余项目的最佳方法是什么?

//line is an internal object, not important here
List<Line> main = ReadMainLines(); //read the main lines
List<Line> ref = ReadReferenceLines(); //read the lines that contain addtional data

IEnumerable<Line[]> result = main.Join(...);

到目前为止我还不错。我正在使用结果进行一些其他处理。我的挑战是要从main中获得其余行,而不是加入结果中。最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您想要ref中的内容而不是main中的内容,则可以使用here中的.Except

ref.Except(main)-如果您想要相反的选择,那就只是main.Except(ref)。 现在,您需要为类型Line写一个IEquatableComparer

此外,不要使用ref作为变量名,它是C#中的关键字。