var family = new []{ new { Name = "父", Age = 40, Sex = "男" }, new { Name = "母", Age = 40, Sex = "女" }, new { Name = "娘", Age = 10, Sex = "女" }, new { Name = "爺ちゃん", Age = 70, Sex = "男" }, new { Name = "曾婆ちゃん", Age = 100, Sex = "女" }, new { Name = "曾曾婆ちゃん", Age = 125, Sex = "女" } }; string startVal = string.Empty; var AggNamePerSex = from f in family group f by f.Sex into g select new { Sex = g.Key, AggName = g.Aggregate( startVal // 初期値 , (running, next) => running += next.Name + "," // 集計処理 , result => result == string.Empty ? result : result.Substring(0, result.Length -1) // 終了処理 ) }; foreach (var sexGroup in AggNamePerSex) { Console.WriteLine(sexGroup.Sex + " : " + sexGroup.AggName); } |