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

标签 c# arrays sockets struct client-server

我正在尝试查找索引所在位置

 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;
        }
    }

这是我的类(class):

    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。但是,这些情况是可以管理的(实现作为练习),这可以帮助您完成大部分工作:)

关于c# - 如何在 C# 中的另一个数组内部的结构内部的数组中查找变量的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412974/

相关文章:

C:读入整数数组的垃圾值

c# - 套接字纯文本响应中断

java - 使用本地主机上的套接字发送消息

c# - 存储过程无法使用动态 sql 文本正确运行

c# - INSERT INTO 语句中的语法错误 c#.net Winforms Devexpress?

c# - XMS.NET无限期地卡在factory.CreateConnection ("username",null);

c# - 从数据绑定(bind) ListView 中删除项目 : Possible bug?

javascript - 将函数从 ActionScript 转换为 Javascript

javascript - JavaScript 中的数字格式化

c - netdb.h : No such file or directory while trying to run a socket program (in C language) on windows