using System.Collections.Generic;
public static void Main()
var table = new List<Table>
new() {Name = "A" , Value = "Sample1"},
new() {Name = "A" , Value = "Sample2"},
new() {Name = "A" , Value = "Sample3"},
new() {Name = "B" , Value = "Sample3"},
new() {Name = "B" , Value = "Sample1"},
new() {Name = "C" , Value = "Sample2"},
new() {Name = "C" , Value = "Sample3"},
new() {Name = "D" , Value = "Sample1"}
var groupNames = table.GroupBy(e => e.Name)
.Select(g => new { Name = g.Key, Count = g.Count() }).ToList();
foreach(var line in groupNames)
Console.WriteLine($"{line.Name} {line.Count}");
var groupCounts = groupNames.GroupBy(e => e.Count)
.Select(g => new { Name = g.Key, Count = g.Count() }).ToList();
foreach(var line in groupCounts)
Console.WriteLine($"{line.Name} {line.Count}");
public string Name {get; set;}
public string Value {get; set;}