【发布时间】:2016-01-14 06:44:48
【问题描述】:
背景:我有两个具有不同名称属性(两个字符串)的不同类型对象的集合。 Collection1 中的对象有一个名为 Name 的字段,Collection2 中的对象有一个名为 Field 的字段。
我需要比较这两个属性,并根据该字符串属性从Collection1 获取项目,其中Collection2 中没有匹配项(Collection1 总是有更多或相同数量的项目。所有项目都应该有一个完成时按Collection2 中的名称/字段匹配项目)。
问题:我使用 Lists 找到了答案,它们对我有所帮助(对于它的价值,我正在使用 Collections)。我确实找到了似乎对我有用的this answer,但是我想将我所做的从查询语法(如果这就是所谓的?)转换为 LINQ 查询。见下文:
//Query for results. This code is what I'm specifically trying to convert.
var result = (from item in Collection1
where !Collection2.Any(x => x.ColumnName == item.FieldName)
select item).ToList();
//** Remove items in result from Collection1**
//...
我真的一点都不熟悉这两种语法(正在研究它),但我想我大体上理解它在做什么。我正在努力尝试将其转换为 LINQ 语法,我想学习这两个选项而不是某种嵌套循环。
从Collection1 中删除查询结果后的最终目标:Collection1.Count == Collection2 并且对于集合中的每个项目,以下内容都是正确的:ItemFromCollection1.Name == SomeItemFromCollection2.Field(如果有意义的话...)
【问题讨论】: