C# 如何通过名称(或值)而不是索引在数组中查找项的值?

C# 如何通过名称(或值)而不是索引在数组中查找项的值?,c#,arrays,C#,Arrays,如何通过名称(或值)而不是索引在数组中查找项的值? 例如;在ID=1的位置获取名称 我有一个对象数组,其中每个对象都有一个子数组。我想按字母顺序排序,ID在父对象中,名称在子数组中 父数组中的每个对象(MyObject)的形状如下所示 Index, _itemID, _price, NamesIDs [] Index, _ itemID, _name 每个对象(MyObjects.\u aSingleAssignment.namesid)中的子数组的形状如下 Index, _itemID,

如何通过名称(或值)而不是索引在数组中查找项的值?
例如;在ID=1的位置获取名称

我有一个对象数组,其中每个对象都有一个子数组。我想按字母顺序排序,ID在父对象中,名称在子数组中

父数组中的每个对象(MyObject)的形状如下所示

Index, _itemID, _price, NamesIDs []
Index, _ itemID, _name
每个对象(MyObjects.\u aSingleAssignment.namesid)中的子数组的形状如下

Index, _itemID, _price, NamesIDs []
Index, _ itemID, _name
我没有构建这个东西,所以请原谅我的疯狂,但是父数组有项目ID和价格,子数组有系统中所有项目ID和名称的列表…对于任何给定的ID(父数组),我如何获取其名称(子数组)

我知道如何在任何给定的索引中获取_itemID

MyControl _aSingleAssignment = this.MyObjects[i] as MyControl;
int _itemID = _aSingleAssignment.ID; // The ID for the currently evaluated item
我知道如何从子数组中的任何给定索引中获取名称

string _itemName = _aSingleAssignment.NamesIDs[i].Name;
但是,当给定ID而不是通过索引将其提取出来时,如何获取名称呢?如果我按索引提取它,我必须遍历子数组中的每个项并进行比较。我不介意迭代,但我认为必须有一种更简单的方法

我想做一些类似的事情:

string\u itemName=\u asingelassignment.NamesIDs[ID==\u itemID].Name

Where is只是获取与ID匹配的名称

本练习的重点是按字母顺序而不是数字顺序对父数组进行排序(.sort())

谢谢大家

尝试使用LINQ:

var foundObj = this.MyObjects.OfType<MyControl>()
                             .Where(n=>n.ID == _itemID)
                             .FirstOrDefault();
有关更多信息,请查看以下链接:


请同时附上您正在处理的对象的代码。您应该使用类型为
,而不是CastThank,以下内容似乎是正确的。其中(n=>n.ID==MyObjects.PriceLevels[i].ID),因为它应该将父ID与子数组ID匹配。但一旦找到父ID,它应该返回名称。我会研究关于LINQ的链接,然后回来。谢谢@阿列克谢·阿扎-非常感谢你的帮助。我研究了林克,发现我需要问一个完全不同的问题。我把它贴在这里:我试图删除这个问题,但不知道如何。。。但是谢谢!