【C#】文字列リストの重複除去とソート

C#

文字列を扱うプログラムを作成する際、文字列のリストから重複を除去したり、リストの内容をソートしたくなることがあると思います。本記事では、それらの処理を行うサンプルコードを紹介します。

サンプルコード

以下のサンプルコードでは、リストの重複除去を行い、その後にリストのソートを行います。

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#で文字列のリストの重複を除去したり、リストの内容をソートしたりする処理のサンプルコードを紹介しました。

タイトルとURLをコピーしました