如何对一个List<int>进行分组并返回一个List<int>?

3

我有一个整数列表。我想对列表进行分组,并创建一个新列表,其中只包含符合某些条件的分组数字。这是我目前的代码。声明membersList为List:

int rows = 5;

List<int> memberKeys = memberKeysList
  .GroupBy(x => x)
  .Where(x => x.Count() == rows)
  .ToList();

它在抱怨将分组列表转换为列表。


1
在你的例子中,你得到的是一个组列表,而不是整数列表。如果你想要其中一个组的内容,你需要选择其中一个组(你的 Where 可能匹配多个组)。如果你只想使用符合条件的第一个组,将你的 Where 改为 FirstOrDefault - heavyd
1个回答

8

您需要选择 Key 以获取类似以下数字:

List<int> memberKeys = memberKeysList.GroupBy(x => x)
                           .Where(x => x.Count() == rows)
                           .Select(grp => grp.Key)
                           .ToList();

如果您不会明确选择他们的(或数字),则GroupBy子句的结果将是IEnumerable<IGrouping<TKey,TElement>>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接