如何检查数组是否包含元素

Akb*_*sha 1 c# arrays

我有一个整数数组的数组。我想检查集合中是否存在一个int数组

        var coll = new int[3][]
        {
            new[] {5, 5},
            new[] {4, 2},
            new[] {3, 4}
        };
        var valueToCheck = new int[] {4, 2};

        if (coll.Contains(valueToCheck))
        {
            // My logic
        }
Run Code Online (Sandbox Code Playgroud)

coll.Contains(valueToCheck)正在返回false。有人可以建议我在这里做错什么吗?

pmc*_*avy 6

可以Any与结合使用SequenceEquals。这将确保仅匹配正确的序列。

if (coll.Any(o => o.SequenceEqual(valueToCheck))) {
    // it exists!
}
Run Code Online (Sandbox Code Playgroud)

  • 这可能是最好/最简单的方法。但是对于大型阵列(大型阵列),性能可能是一个问题。 (2认同)