文字列を扱うプログラムを作成する際、文字列のリストから重複を除去したり、リストの内容をソートしたくなることがあると思います。本記事では、それらの処理を行うサンプルコードを紹介します。
サンプルコード
以下のサンプルコードでは、リストの重複除去を行い、その後にリストのソートを行います。
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<string> originalList = new List<string> { "cherry", "banana", "apple", "cherry" };
// 重複を除去 ★
List<string> distinctList = originalList.Distinct().ToList();
// 重複除去の結果を表示
Console.WriteLine("重複除去後");
foreach (var item in distinctList)
{
Console.WriteLine(item);
}
// ソート ★
distinctList.Sort();
// ソート結果を表示
Console.WriteLine("ソート後");
foreach (var item in distinctList)
{
Console.WriteLine(item);
}
}
}
実行結果
重複除去後
cherry
banana
apple
ソート後
apple
banana
cherry
重複除去の注意点
Distinct() メソッドを使用する際に事前にソートする必要はありません。Distinct() は、リスト内の重複する要素を除去し、ToList()で新しいリストを生成します。Distinct()を呼ぶだけでは重複除去は出来ないので注意してください。
NGの例:Distinct()を呼ぶだけでは重複除去できない
originalList.Distinct(); // Distinct()を呼ぶだけでは重複除去できない
OKの例:重複除去した結果をリスト化して新たなリストとして保持する
List<string> distinctList = originalList.Distinct().ToList();
ソートについて
ソートの場合は、重複除去とは異なり、リストのSortメソッドを実行するだけで処理が行われます。
distinctList.Sort();
まとめ
本記事では、C#で文字列のリストの重複を除去したり、リストの内容をソートしたりする処理のサンプルコードを紹介しました。