【问题标题】:How does one create instance of 2D array in C#?如何在 C# 中创建二维数组的实例?
【发布时间】:2016-07-09 16:44:22
【问题描述】:

所以我有以下内容,似乎不正确。

var classAsm =  assembly.GetExportedTypes().Where(o => o.FullName == "iControl.CommonAddressPort").First();
Array propertyOfPorts = Array.CreateInstance (classAsm, 1,1);

我想要实现的是为 propertyOfPorts 赋值,因为有 2 个(地址 - 字符串和端口 - 长),例如这个:

propertyOfPorts.address = "12.2.2.2";
propertyOfPorts.port = 80;

感谢任何帮助。

【问题讨论】:

    标签: c#-4.0 multidimensional-array createinstance


    【解决方案1】:

    我个人会先创建一个类,然后使用一个列表。

    public class PortProperties {
        public String Address { get; set; }
        public long Port { get; set; }
    }
    

    然后初始化列表:

    var propertiesOfPorts = new List<PortProperties>();
    

    然后添加:

    propertiesOfPorts.add( new PortProperties {
        Address = "12.2.2.2",
        Port = 80
    });
    

    然后使用它:

    PortProperties firstPort = propertiesOfPorts[0];
    String address = firstPort.Address;
    long port = firstPort.Port
    

    使用这种方法,很容易准确地定义你想要的。否则 2D 数组或 3D 数组会变得非常混乱。例如,也许对于这些端口中的每一个,我需要定义与该特定端口相关的其他此类信息的另一个列表(因此使其成为潜在的 3D 数组),我只需在 PortProperties 类中包含一个列表对象,简单易行去理解。

    public class PortProperties {
        public String Address { get; set; }
        public long Port { get; set; }
        public List<String> otherPropList { get; set; }
    }
    

    【讨论】:

    • 谢谢@Gerneio,唯一的问题是这些属性已经存在于“iControl.CommonAddressPort”中,它是第三部分 dll (SDK)。但我认为你为我敞开心扉,为我提供了如何解决这个问题的想法。
    猜你喜欢
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多