我试图找出字符串数组是否存在于字符串数组列表中,但我遇到了一些混乱。下面是一些代码:
Dim listResults as List(of String)
Dim listStringArrays as List(of String())
Dim Something as String() = {"Foo", "Bar", "Stuff"}
Dim Otherthing as string() = {"Foo", "Bar", "Stuff"}
listStringArrays.Add(Something)
IF listStringArrays.Contains(Otherthing) then
listResults.Add("True")
Else
listResults.Add("False")
End If
IF listStringArrays(0).Equals(Otherthing) then
listResults.Add("True")
Else
listResults.Add("False")
End If
那么listResults将包含两个"False"。但奇怪的是:
Something(0) = Otherthing(0)
Something(1) = Otherthing(1)
Something(2) = Otherthing(2)
这些的值都为true。我怎么能知道如果我的listStringArrays包含其他东西,如果包含不工作?
附加问题:为什么在这种情况下Contains不能工作?
内容相同的两个数组仍然不是同一个数组。Something = Otherthing
为假。这就是为什么Contains
不起作用。
您可以使用SequenceEqual
来查看listStringArrays
中是否有任何数组与Otherthing
具有相同的内容。
If listStringArrays.Any(Function(t) t.SequenceEqual(Otherthing)) Then