2013-04-09 4 views
-2
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

Если prod является IEnumerable<string>, вы можете сделать это с помощью LINQ

var results = 
    (from s in prod 
    group s by s into g 
    where g.Count() == itemCount 
    select g.Key) 
    .ToArray(); 
1

Я предположил, что prod является List<string> или IEnumerable<string> вообще:

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