通过比较计数检索不同的项

本文关键字:检索 比较 | 更新日期: 2023-09-27 18:08:31

int itemCount=3;
prod.Add("P1");
prod.Add("P2");
prod.Add("P1");
prod.Add("P2");
prod.Add("P1");
prod.Add("P3");

在这个prod列表中,我想获得每个项目的计数,如果计数与itemCount匹配,则需要将其放入数组中。

在这种情况下,只有P1必须放入数组。

有谁能帮我吗?我想用c#写代码

通过比较计数检索不同的项

如果prodIEnumerable<string>,则可以使用linq

执行此操作。
var results =
    (from s in prod
     group s by s into g
     where g.Count() == itemCount
     select g.Key)
    .ToArray();

我假设prod一般是List<string>IEnumerable<string>:

var items = prod.GroupBy(x => x)
                .Where(g => g.Count() == itemCount)
                .Select(g => g.Key)
                .ToArray();