Чтобы сравнить все строки в коллекции друг с другом, чтобы найти дубликаты, наиболее эффективно использовать Словарь:
string[] strings = { "Zaphod", "Trillian", "Zaphod", "Ford", "Arthur" };
var count = new Dictionary<string, int>();
foreach (string s in strings) {
if (count.ContainsKey(s)) {
count[s]++;
} else {
count.Add(s, 1);
}
}
foreach (var item in count) {
Console.WriteLine("{0} : {1}", item.Key, item.Value);
}
Выход:
Zaphod : 2
Trillian : 1
Ford : 1
Arthur : 1
Вы также можете сделать это, используя методы LINQ:
var count =
strings
.GroupBy(s => s)
.Select(
g => new { Key = g.First(), Value = g.Count() }
);