HOWTO · Csharp

C# でアルファベット順にリストを並べ替える

この記事では、C# でリストをアルファベット順に並べ替える方法を示します。

このページの内容

このガイドでは、C# で単語をアルファベット順に並べ替える方法を示します。C# には、リストの並べ替えに使用できる組み込み関数があります。

C# で Sort() メソッドを使用してリストをアルファベット順に並べ替える

まず、System.Collections.Generic;を使用、これは c# でリストを使用するためにインポートする必要のあるライブラリです。リストをソートするには、Sort() を使用する必要があります。

その後、コンパレータを使用して 2つの文字列を比較する必要があります。たとえば、次のコードを見てください。

citizens.Sort((x, y) => string.Compare(x.Name, y.Name));

上記のコード行では、citizens がリストであり、市民の名前を比較して、市民リストをアルファベット順に並べ替えています。

C#foreach ループを使用してリストをアルファベット順に表示する

using System;

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;  // library import to use list;

namespace list_sort {
  class Program {
    static void Main(string[] args) {
      List<Person> citizens = new List<Person>(5);  // Creating List Of Person having size 5;
                                                    // Adding Persons in List
      citizens.Add(new Person("Mark", "Zuker", "Silicon Valley United States", 50));
      citizens.Add(new Person("Bill ", "Gates", "Silicon Valley United States", 70));
      citizens.Add(new Person("Jeff", "Bezoz", "Silicon Valley United States", 40));
      citizens.Add(new Person("Elon", "Musk", "Silicon Valley United States", 20));
      citizens.Add(new Person("Antony", "Gates", "Silicon Valley United States", 30));

      Console.WriteLine(":::::::::::::::::::::::::::::::Before Sorting ::::::::::::::::::::::::");
      // Prinring The List Names...
      foreach (Person p in citizens) {  // Loop through List with foreach
        Console.WriteLine(p.Name);
      }
      Console.WriteLine(":::::::::::::::::::::::::::::::After Sorting :::::::::::::::::");
      // Problem #  Sort List of Citizens According to Citizen Names orderby-alphabetical-order
      citizens.Sort((x, y) => string.Compare(x.Name, y.Name));
      foreach (Person p in citizens)  // Prniting After alphabetical Sort.
      {                               // Loop through List with foreach
        Console.WriteLine(p.Name);
      }
      Console.ReadKey();  // to Stay On Screen.
    }
  }
  class Person {
    public String Name;
    public String LastName;
    public String Address;
    public int age;
    public Person(String Name, String LastName, String Address, int Age) {
      this.Name = Name;
      this.LastName = LastName;
      this.Address = Address;
      this.age = Age;
    }
  }
}

まず、citizens のリストを作成し、次に名前、住所、年齢を追加しました。リストを並べ替える前に印刷し、リストを並べ替えてから印刷しました。

出力:

:::::::::::::::::::::::::::::::Before Sorting ::::::::::::::::::::::::
Mark
Bill
Jeff
Elon
Antony
:::::::::::::::::::::::::::::::After Sorting :::::::::::::::::
Antony
Bill
Elon
Jeff
Mark