【问题标题】:How do i find whether my data is in item List如何查找我的数据是否在项目列表中
【发布时间】:2011-07-19 01:05:15
【问题描述】:

在 vb.net
我有myList as List(of myClass)myData as myClass

那么我如何确定 myList 是否包含 myData

目前我正在这样做:

dim myList as List(of myClass) = myClasses.GetData()
dim myData as myClass = myClasses.getData(1)

for each Item as myClass in myList
   if Item.uin = myData.uin then
       msgbox 'yeah'
   end if
next

下一个更好的解决方案是什么?

【问题讨论】:

    标签: vb.net search foreach contains loops


    【解决方案1】:

    List 应该有一个 Contains() 方法来做你想做的事情。

    如果你想要偏移量,使用 indexOf()。

    编辑:如果由于某种原因您的列表不包含相同的对象,并且您必须比较它们的“uin”字段是否相等,最简单的方法是使用 LINQ:

    myList.Any(Function(item) item.uin = myData.uin)
    

    否则,泛型 List 有一个带有谓词的 Exists() 方法:

    myList.Exists(Function(item) item.uin = myData.uin)
    

    对不起,我的 VB.NET 不是很流利(我自己是 C# 人),所以如果我在那里打错字,请告诉我。

    【讨论】:

    • 我尝试使用 contains 它对我来说不能正常工作......即使它包含该元素,它也会返回 false。我可以参考一些例子吗
    • "uin" 不是唯一的吗? Contains/indexOf 将仅测试对象是否在列表中,而不是该对象是否是列表中具有“uin”属性等于特定值的对象。因此,您的 GetData() 返回一个列表,其中包含与使用 getData(x) 获得的对象不同的对象。奇怪。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2019-03-02
    • 2018-02-25
    • 2019-07-26
    • 2012-09-23
    相关资源
    最近更新 更多