for WPF developers
Home Profile Tips 全記事一覧

string のコレクションを並べ替える

(2016/12/02 21:41:08 created.)

文字列のコレクションを並べ替えるには System.Linq が提供する OrderBy() 拡張メソッドが便利です。この拡張メソッドは比較する方法を引数に与えることでその通りに並べ替えてくれる便利なメソッドです。加えて文字列の比較方法は StringComparer クラスが提供してくれているため、専用のメソッドを用意しなくても簡単に実装できます。

Program.cs
  1. namespace Tips_StringSort
  2. {
  3.     using System;
  4.     using System.Linq;
  5.  
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var words = new string[]
  11.             {
  12.                 "orange",
  13.                 "Peach",
  14.                 "apple",
  15.                 "Banana",
  16.                 "さしすせそ",
  17.                 "たちつてと",
  18.                 "かきくけこ",
  19.                 "あいうえお",
  20.             };
  21.  
  22.             Console.WriteLine("大文字/小文字の区別を付ける");
  23.             foreach (var word in words.OrderBy(x => x, StringComparer.Ordinal))
  24.             {
  25.                 Console.WriteLine(word);
  26.             }
  27.  
  28.             Console.WriteLine(System.Environment.NewLine + "大文字/小文字の区別を付けない");
  29.             foreach (var word in words.OrderBy(x => x, StringComparer.OrdinalIgnoreCase))
  30.             {
  31.                 Console.WriteLine(word);
  32.             }
  33.  
  34.             Console.WriteLine(System.Environment.NewLine + "大文字/小文字の区別を付けずに降順にする");
  35.             foreach (var word in words.OrderByDescending(x => x, StringComparer.OrdinalIgnoreCase))
  36.             {
  37.                 Console.WriteLine(word);
  38.             }
  39.  
  40.             Console.ReadKey();
  41.         }
  42.     }
  43. }