C#でリストから重複アイテムを削除する方法


  1. Distinctメソッドを使用する方法:

    List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
    List<int> uniqueNumbers = numbers.Distinct().ToList();

    上記の例では、Distinctメソッドを使用して重複したアイテムを削除しています。

  2. HashSetを使用する方法:

    List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
    HashSet<int> uniqueNumbers = new HashSet<int>(numbers);

    上記の例では、HashSetを使用して重複したアイテムを削除しています。HashSetは重複を許さないコレクションですので、追加する際に重複が自動的に削除されます。

  3. 自前のメソッドを使用する方法:

    List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
    List<int> uniqueNumbers = RemoveDuplicates(numbers);

    RemoveDuplicatesメソッドは以下のように実装できます:

    public static List<T> RemoveDuplicates<T>(List<T> inputList)
    {
    List<T> uniqueList = new List<T>();
    foreach (T item in inputList)
    {
        if (!uniqueList.Contains(item))
        {
            uniqueList.Add(item);
        }
    }
    return uniqueList;
    }

    上記の例では、自前で重複を削除するメソッドを実装し、それを使用して重複したアイテムを削除しています。

これらはいくつかの一般的な方法ですが、他にもLINQを使用する方法や、辞書(Dictionary)を使用する方法などもあります。使用するデータ型やパフォーマンスの要件に応じて、最適な方法を選択してください。