Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

IEnumerable.ThenByメソッド

Enumerable.ThenBy(TSource, TKey) メソッド (IOrderedEnumerable(TSource), Func(TSource, TKey)) (System.Linq)
キーに従って、シーケンス内の後続の要素を昇順で配置します。

SQLでは、ORDER BYの2つ目以降の列の昇順指定に相当します。

ソースコード

using System;
using System.Linq;

namespace LinqSample {
    class Program {
        static void Main(string[] args) {
            Man[] mans = new Man[] { 
                new Man() { Name = "suzuki taro", Age = 20 },
                new Man() { Name = "sato taro", Age = 21 },
                new Man() { Name = "sato taro", Age = 20 }
            };

            // SQLの"ORDER BY Man.Name, Man.Age"に相当する。
            foreach (Man man in mans.OrderBy(man => man.Name).ThenBy(man => man.Age)) {
                Console.WriteLine(man);
            }

            Console.ReadKey();
        }
    }

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

        public override string ToString() {
            return string.Format("Name = {0}, Age = {1}", Name, Age);
        }
    }
}

実行結果