Попробуйте это с помощью LINQ.
Сначала прочитайте ваш текстовый файл на List<string>
, используя этот код:
const string f = "TextFile1.txt";
// 1
// Declare new List.
List<string> lines = new List<string>();
// 2
// Use using StreamReader for disposing.
using (StreamReader r = new StreamReader(f))
{
// 3
// Use while != null pattern for loop
string line;
while ((line = r.ReadLine()) != null)
{
// 4
// Insert logic here.
// ...
// "line" is a line in the file. Add it to our List.
lines.Add(line);
}
}
Вам необходимо определить класс, в котором вы будете иметь имя и, соответственно,the count:
class PersonCount
{
public string Name { get; set; }
public int Count { get; set; }
}
И, наконец, используйте это выражение Lambda
, чтобы получить желаемое List<string>
List<PersonCount> personCounts = lines.GroupBy(p => p).Select(g => new PersonCount() {Name = g.Key, Count = g.Count()}).ToList();
Теперь переберите список, чтобы получить имена и количество дубликатов.