gpt4 book ai didi

c# - 如何使用 LINQ to object 从对象集合中获取第二个重复项

转载 作者:行者123 更新时间:2023-11-30 22:45:04 26 4
gpt4 key购买 nike

例如,我有这个集合:

1:A

2:B

3:A

4:C

5:一个

6:C

我想在 LINQ 查询中从该集合中获取第二个重复项,

要求的结果是:3:A, 6:C

最佳答案

有点复杂但有效:

int occ = 1; // 1 if you want the 2nd occurrence, 2 if you want the 3rd etc...
var nRepeatingElements = list.Select((x, idx) => new { Index = idx, Value = x })
.GroupBy(x => x.Value)
.Where(g => g.Count() > occ)
.Select(x => x.ElementAt(occ))
.ToList();

它返回一个列表:

[Index:2 , Value: 'A']
[Index:5 , Value: 'C']

注意

索引比您想要的解决方案低 1,(因为索引是从 0 开始的)。但是增加它真的很容易,即使是在第一个 LINQ 中 如果你想选择:

Select((x, idx) => new { Index = idx+1, Value = x })

关于c# - 如何使用 LINQ to object 从对象集合中获取第二个重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3218496/

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