normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

GroupBy、OrderByを使ってみる

DTOリストの中から年齢最少の幼女を抜き出すサンプル。
ちょっと走り書きしてみた。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Program
{
    static void Main(string[] args)
    {
        IList<SmpDto> list = new List<SmpDto>(new SmpDto[]{
            new SmpDto() { Age = 19, Name = "高町なのは" },
            new SmpDto() { Age = 19, Name = "フェイト・テスタロッサ" },
            new SmpDto() { Age = 16, Name = "ティアナ・ランスター" },
            new SmpDto() { Age = 10, Name = "キャロ・ル・ルシエ" }}
        );
        var result = list.GroupBy(smpDto => smpDto.Age).OrderBy(val => val.Key).First();
        result.ToList().ForEach(Console.WriteLine);
        Console.ReadLine();
    }

    class SmpDto
    {
        public int Age { get; set; }
        public string Name { get; set; }

        public override string ToString()
        {
            return Name + " " + Age + "歳♪";
        }
    }
}