List <string>に重複した値があるリストを見つける方法

GroupBy を使用してみてください と Any いいね;

lstNames.GroupBy(n => n).Any(c => c.Count() > 1);

GroupBy メソッド;

Any メソッド、それは boolean を返します;


これを行う最も効率的な方法を探している場合は、

var lstNames = new List<string> { "A", "B", "A" };
var hashset = new HashSet<string>();
foreach(var name in lstNames)
{
    if (!hashset.Add(name))
    {
        Console.WriteLine("List contains duplicate values.");
        break;
    }
}

最初の重複が見つかるとすぐに停止します .複数の場所で使用する場合は、これをメソッド (または拡張メソッド) にまとめることができます。


ハッシュ技術に基づく一般化されたコンパクトな拡張バージョンの回答:

public static bool AreAnyDuplicates<T>(this IEnumerable<T> list)
{
    var hashset = new HashSet<T>();
    return list.Any(e => !hashset.Add(e));
}