假设我在名为'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();
但我不确定如何只考虑点后的内容而不是整个项目
答案 0 :(得分:6)
我不确定如何只考虑点后的内容,而不是整个项目
如果确保存在点,则在点上拆分,然后取第二项:
var Groups = array.GroupBy(i => i.Split('.')[1]);
代码的其余部分SelectMany
和Take(2)
是正确的。