コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】配列やリストの中に重複する要素が存在する場合 true を返す拡張メソッド

ソースコード

private static bool HasDuplicateElements<T>( this IReadOnlyList<T> self )
{
    for ( var i = 0; i < self.Count - 1; i++ )
    {
        for ( var j = i + 1; j < self.Count; j++ )
        {
            if ( self[ i ].Equals( self[ j ] ) )
            {
                return true;
            }
        }
    }

    return false;
}

使用例

int[]    array1 = { 1, 2, 3, 4, 5 };              // 重複なし
int[]    array2 = { 1, 2, 3, 2, 4 };              // 2が重複
string[] array3 = { "apple", "banana", "apple" }; // "apple"が重複

Debug.Log( HasDuplicateElements( array1 ) ); // false
Debug.Log( HasDuplicateElements( array2 ) ); // true
Debug.Log( HasDuplicateElements( array3 ) ); // true