c# -根据数组复杂结构的值查找数组中的键

本文关键字:数组 查找 结构 -根 复杂 | 更新日期: 2023-09-27 18:16:35

在c#中是否有方法通过其"子值"在数组中找到项目的键?假设函数"findKeyofCorrespondingItem()"?

struct Items
{
 public string itemId;
 public string itemName;
}
 int len = 18;
 Items[] items = new Items[len];
items[0].itemId = "684656"; 
items[1].itemId = "411666"; 
items[2].itemId = "125487"; 
items[3].itemId = "756562"; 
// ...
items[17].itemId = "256569"; 
int key = findKeyofCorrespondingItem(items,itemId,"125487"); // returns 2

c# -根据数组复杂结构的值查找数组中的键

可以使用Array.FindIndex。见https://msdn.microsoft.com/en-us/library/03y7c6xy (v = vs.110) . aspx

using System.Linq
...
Array.FindIndex(items, (e) => e.itemId == "125487"));
public static int findKeyofCorrespondingItem(Items[] items, string searchValue)
    {
        for (int i = 0; i < items.Length; i++)
        {
            if (items[i].itemId == searchValue)
            {
                return i;
            }
        }
        return -1;
    }

你可以运行一个循环,检查itemId是否等于你正在搜索的值。如果没有项与value匹配,则返回-1。

使用Linq:

解决方案
public static int findKeyofCorrespondingItem(Items[] items, string searchValue)
{
    return Array.FindIndex(items, (e) => e.itemId == searchValue);
}