using System.Collections;
using System.Collections.Generic;
public static void Main()
var china = new Country { Name = "China", Alias = "china" };
var japan = new Country { Name = "Japan", Alias = "japan" };
var korea = new Country { Name = "Korea", Alias = "korea" };
var malaysia = new Country { Name = "Malaysia", Alias = "malaysia" };
List<Partner> partners = new List<Partner> {
new Partner(){ Name = "A", Country = china },
new Partner(){ Name = "B", Country = japan },
new Partner(){ Name = "C", Country = korea },
new Partner(){ Name = "D", Country = korea },
new Partner(){ Name = "E", Country = japan },
new Partner(){ Name = "F", Country = malaysia },
new Partner(){ Name = "G", Country = china },
new Partner(){ Name = "H", Country = japan },
new Partner(){ Name = "I", Country = japan },
new Partner(){ Name = "J", Country = korea },
new Partner(){ Name = "K", Country = china },
var listSort = partners.GroupBy(x => x.Country);
foreach(var partnerGroup in listSort) {
Console.WriteLine(partnerGroup.Key.Name);
foreach(var partner in partnerGroup) {
Console.WriteLine(partner.Name);
public string Name { get; set; }
public Country Country { get; set; }
public string Name { get; set; }
public string Alias { get;set; }