一次用多个值填充 C# 结构数组

asd*_*ael 4 c# struct

我有一个结构数组,它看起来像这样:

    public struct DATA
    {
        public int number;
        public int channel;
        public string filename;
        public string description;
    }
    DATA[] myData = new DATA[12];
Run Code Online (Sandbox Code Playgroud)

我需要在这里填写很多值,例如 myData[0] = {0, 1, "myfile", "TBD"} 等。

用数据填充这 12 个结构的最简单方法(就 LOC 而言)是什么?使用类会更容易吗?

mat*_*zek 5

执行此操作的 C 方法不起作用。

DATA[] myData = new DATA[]{{1,3,"asdasd","asdasd"}, {...
Run Code Online (Sandbox Code Playgroud)

您必须设置每个 DATA 结构。

我建议添加一个构造函数

public DATA(int number, int channel, string filename, string description)
{
    this.number = number;
    this.channel = channel;
    this.filename = filename;
    this.description = description;
}
Run Code Online (Sandbox Code Playgroud)

并使用 ctor 填充数组

DATA[] myData = new DATA[]{
    new DATA(1,  3,  "abc",  "def"),
    new DATA(2, 33, "abcd", "defg"),
    ...
};
Run Code Online (Sandbox Code Playgroud)

您还可以使用通用列表并以这种方式初始化它(.NET 3.5 及更高版本):

List<DATA> list = new List<DATA>()
{
    new DATA(1,  3,  "abc",  "def"),
    new DATA(2, 33, "abcd", "defg")
};
Run Code Online (Sandbox Code Playgroud)