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

时间:2013-04-09 17:27:44

标签: c# linq

int itemCount=3;

prod.Add("P1");
prod.Add("P2");
prod.Add("P1");
prod.Add("P2");
prod.Add("P1");
prod.Add("P3");

在这个产品列表中,我希望得到每个项目的计数,如果计数与itemCount匹配,则需要将其放入数组中。

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

任何人都可以帮助我吗?我想要C#中的代码。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

我认为prod一般是List<string>IEnumerable<string>

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