List(of String())包含String()

时间:2015-08-30 21:57:36

标签: vb.net

我试图找出Strings数组列表中是否存在一个字符串数组,但是我遇到了一些混乱。这是一些代码:

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)

这些都会评估为真。如果Contains不起作用,我怎么能知道我的listStringArrays是否包含Otherthing?

奖金问题:为什么包含在这种情况下不起作用?

1 个答案:

答案 0 :(得分:3)

具有相同内容的两个数组仍然不是同一个数组。 Something = Otherthing是假的。这就是Contains无效的原因。

您可以使用SequenceEqual来查看listStringArrays中的任何数组是否与Otherthing具有相同的内容。

If listStringArrays.Any(Function(t) t.SequenceEqual(Otherthing)) Then