如何在 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];
您知道找到此索引的其他方法吗?
它有点丑陋(因为你最终迭代了两次),但你可以写:
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 退出。但是,可以管理这些情况(将实施留作练习),这可以让您大部分时间:)