如何在c#中将列表缩小到相同项目的最大数量

本文关键字:项目 最大数 缩小 列表 | 更新日期: 2023-09-27 18:01:45

假设我把这个列表放在一个名为array的数组中:

[0]a.1 
[1]b.1 
[2]c.1 
[3]d.1 
[4]e.2 
[5]f.2 
[6]g.2 
[7]h.3

我想用c#把它缩小到一个列表,一个列表中最多有两个相同的数字,所以它看起来像这样:

[0]a.1 
[1]b.1 
[2]e.2 
[3]f.2 
[4]h.3

我试图使用'GroupBy':

var Groups = array.GroupBy(i => i);
var Result = Groups.SelectMany(iGroup => iGroup.Take(2)).ToArray();

但我不确定如何只考虑点之后的内容而不是整个项目

如何在c#中将列表缩小到相同项目的最大数量

我不知道如何只考虑点之后的内容而不是整个项目

如果圆点保证存在,则在圆点上分割,并取第二项:

var Groups = array.GroupBy(i => i.Split('.')[1]);

剩下的代码,SelectManyTake(2),是正确的