我有一个数组(Items
),它包含很多类的实例(Item
)。
Item
有2个属性,一个组和一个ID。
数组(Item
)中可能有多个Items
具有相同的组和ID属性。
如何“搜索”/获取与指定组和/或ID匹配的第一个Item
像:
Item.getbygroup([group])
返回item
答案 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