gpt4 book ai didi

vb.net - LINQ VB 如何检查对象列表中的重复项

转载 作者:行者123 更新时间:2023-12-02 01:18:46 25 4
gpt4 key购买 nike

我有一个对象列表,每个对象都有 2 个相关属性:“ID”和“Name”。让我们将列表称为“lstOutcomes”。我需要检查列表中的重复项(意思是 object1.ID = object2.ID 等)并设置一个标志(valid = false 或其他)(如果有)至少一式两份。此外,如果在失败时向用户发送一条消息,提及对象的“名称”,那就太好了。

我确定我需要使用 Group By 运算符来执行此操作,但我不习惯在 LINQ 中这样做,而且那里的示例对我没有帮助。 This article似乎接近我需要的,但不完全是,它是在 C# 中。

这是一个开始......

Dim duplist = _
(From o As objectType In lstOutcomes _
Group o By o.ID Into g = Group _
Let dups = g.Where(Function(h) g.Count > 1) _
Order By dups Descending).ToArray

if duplist.count > 0 then
valid = false
end if

帮助?

最佳答案

我会用 C# 编写,但希望您能将其转换为 VB。它不使用连接并且是 O(n log n),我假设你有 List<T> :

lst.Sort();  //O(nlogn) part.

var duplicatedItems = lst.Skip(1).Where((x,index)=>x.ID == lst[index].ID);

关于vb.net - LINQ VB 如何检查对象列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732132/

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