在数组中搜索类

时间:2010-01-02 21:14:52

标签: .net vb.net arrays search

我有一个数组(Items),它包含很多类的实例(Item)。

Item有2个属性,一个组和一个ID。

数组(Item)中可能有多个Items具有相同的组和ID属性。

如何“搜索”/获取与指定组和/或ID匹配的第一个Item

像: Item.getbygroup([group])返回item

编辑:那会让我找到第二个?所以开始在数组中搜索一个点

2 个答案:

答案 0 :(得分:3)

使用LINQ:

其中group和id是要与

进行比较的一些变量
var item = Items.Where(x => x.Group == group || x.ID == id).First();

答案 1 :(得分:2)

使用Array.Find。来自文档:

  

搜索与指定谓词定义的条件匹配的元素,并返回整个Array中的第一个匹配项。

示例:

Item.Group搜索:

Item firstItem = Array.Find(Items, Function(item as Item) item.Group = group);

Item.ID搜索:

Item firstItem = Array.Find(Items, Function(item as Item) item.ID = ID);

回复您的修改:

  编辑:那会让我找到第二个?所以开始在数组中搜索一个点

你可以这样做:

Dim matches as Item()
Dim secondItem as Item
matches = Array.FindAll(Items, Function(item as Item) item.Group = group)
If matches.Length >= 2 Then
    secondItem = matches(1)
Else
    'handle case where no second item
EndIf