VB.NET List(of X).Contains 行为
Posted
技术标签:
【中文标题】VB.NET List(of X).Contains 行为【英文标题】:VB.NET List(of X).Contains Behavior 【发布时间】:2010-10-10 09:57:51 【问题描述】:我有一个自定义类设置为具有两个属性 X 和 Y 的键
我有类似的东西:
Dim test As New List(of TestClass)
Dim key as New TestData
key._a = A
key._b = B
For Each a As TestClass In SomeCollection
If Not test.Contains(key) Then
'Do Stuff
End If
Next
我的问题是:List(of T) 上的 .Contains 的行为如何?它是在寻找相同的数据结构,还是仅仅匹配我的密钥的一个属性?
如果可以,请附上一个链接,我可以在其中查看有关此的一些文档。
编辑 Contains 方法类型安全吗?
【问题讨论】:
“类型安全”的具体含义是什么?整个 .NET 东西类型不安全吗? 【参考方案1】:它使用Equals
方法来检查身份。
默认情况下(如果没有被覆盖)Equals
返回 true
如果两个引用相同或两个结构在成员上相等。
【讨论】:
【参考方案2】:我昨天刚问过the same question :)
您的 TestClass 应该实现 IEquatable(of T) http://msdn.microsoft.com/en-us/library/ms131187(VS.80).aspx 接口以使其类型安全
【讨论】:
以上是关于VB.NET List(of X).Contains 行为的主要内容,如果未能解决你的问题,请参考以下文章
VB.NET ArrayList 到 List(Of T) 类型的复制/转换
VB.NET 泛函数 system.collections.generic.list(of textbox) 的使用问题!
查询表中最新一期资产负债率 ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contain