.net 在数组中搜索类

.net 在数组中搜索类,.net,vb.net,arrays,search,.net,Vb.net,Arrays,Search,我有一个数组Items,其中包含一个类Item的许多实例 项有两个属性,一个组和一个ID arrayItems中可能有多个项具有相同的组和ID属性 如何搜索/获取与指定组和/或ID匹配的第一个项目 比如: Item.getbygroup[group]返回一个项 编辑:那我怎么才能找到第二个呢?因此,开始在数组中搜索点使用。从文件中: 搜索与指定谓词定义的条件匹配的元素,并返回整个数组中的第一个匹配项 例如: 要按项目进行搜索。组: 要按Item.ID进行搜索,请执行以下操作: 回应您的编辑: 编

我有一个数组Items,其中包含一个类Item的许多实例

项有两个属性,一个组和一个ID

arrayItems中可能有多个项具有相同的组和ID属性

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

比如: Item.getbygroup[group]返回一个项

编辑:那我怎么才能找到第二个呢?因此,开始在数组中搜索点

使用。从文件中:

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

例如:

要按项目进行搜索。组:

要按Item.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
使用。从文件中:

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

例如:

要按项目进行搜索。组:

要按Item.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
使用LINQ:

其中group和id是一些要比较的变量

var item = Items.Where(x => x.Group == group || x.ID == id).First();
使用LINQ:

其中group和id是一些要比较的变量

var item = Items.Where(x => x.Group == group || x.ID == id).First();

你说的合法是什么意思?除了不确定是否正确之外,语法只需要转换为VB,例如未测试:Dim item=Items.WhereFunctionx x.Group=Group或lse x.ID=ID。First@Jonathan:我的意思正是它不是合法的VB.NET语法。@Heinzi:如果需要转换,那么您的断言肯定是错误的。好的,我不明白你说的整个法律问题是什么意思。Heinzi评论中的代码是否正确/可用/恰当/合法?你说的合法是什么意思?除了不确定是否正确之外,语法只需要转换为VB,例如未测试:Dim item=Items.WhereFunctionx x.Group=Group或lse x.ID=ID。First@Jonathan:我的意思正是它不是合法的VB.NET语法。@Heinzi:如果需要转换,那么您的断言肯定是错误的。好的,我不明白你说的整个法律问题是什么意思。海因茨评论中的代码是否正确/可用/恰当/合法