gpt4 book ai didi

c# - 使用 LINQ 从 2 个集合中检索非重复项

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:17 24 4
gpt4 key购买 nike

背景:我有两个具有不同名称属性(均为字符串)的不同类型对象的集合。 Collection1 中的对象有一个名为Name 的字段,Collection2 中的对象有一个名为Field 的字段。
我需要比较这两个属性,并根据该字符串属性从 Collection1 中获取项目,其中 Collection2 中没有匹配项(Collection1 将总是有更多或相等数量的项目。完成后,所有项目都应在 Collection2 中具有按名称/字段匹配的项目)。

问题:我使用 Lists 找到了答案,它们对我有一点帮助(不管它的值(value),我正在使用 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(如果有意义...)

最佳答案

您可以像这样将其转换为 LINQ 方法:

var result = Collection1.Where(item => !Collection2.Any(x => x.ColumnName == item.FieldName))
.ToList();

关于c# - 使用 LINQ 从 2 个集合中检索非重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com