如何在 C# 中另一个数组的结构内部的数组中查找变量的索引

本文关键字:数组 内部 查找 变量 索引 结构 另一个 | 更新日期: 2023-09-27 18:34:03

我正在尝试查找索引

 EventName=NewYearParty; //I know the value of the eventname

在名称为 - 的数组中 -> event_array


我尝试了这段代码,但它不起作用:

index_event = Array.FindIndex(userlister[5].event_array, row => row.EventName == NewYearParty);

这是我的结构:

 public struct Events
    {
        public string EventName;
        public string Organizator;

        public Events(string Name, string Org)
        {
            EventName = Name;
            Organizator = Org;
        }
    }

这是我的班级:

    public class users
    {
        public Socket U;
        public string Name;
        public Events[] event_array;
        public string[] status;
        public users()
        {
            U = null;
            Name = "";
            event_array = new Events[50];
            status = new string[50];
        }
    }

这是另一个数组:

 public users[] userlister = new users[50];

您知道找到此索引的其他方法吗?

如何在 C# 中另一个数组的结构内部的数组中查找变量的索引

它有点丑陋(因为你最终迭代了两次),但你可以写:

Events[] event_array = userlister[5].event_array;
Array.IndexOf(event_array, event_array.First(e => e.EventName == "NewYearParty"));

有关详细信息,请参阅 Array.IndexOf (MSDN)。您也可以始终使用while循环:

int index = 0;
bool found = false;
Events[] event_array = userlister[5].event_array;    
while (!found && index < event_array.Length)
{
   if (event_array[index].EventName == "NewYearParty")
      found = true;
   else
      index++;
}
//Index of the element in "index"

这些都不是真正安全的;如果元素不存在,第一个将抛出,如果元素不存在,第二个将以 found false 退出。但是,可以管理这些情况(将实施留作练习),这可以让您大部分时间:)