【发布时间】:2017-07-27 20:57:57
【问题描述】:
当我不知道元素的确切数量时,我有一个关于在 C# 中创建数组的问题。我发现了多个类似的问题,例如this one。那里的建议是使用列表而不是数组。在该示例和所有其他示例中,我已经看到它实例化了一个“字符串”列表。我可以对结构做同样的事情吗?
例如,我有以下用于存储失败信息的结构,但在测试开始时我不知道会发生多少失败。可能是 0,也可能是数百。
public struct EraseFailures
{
public string timestamp;
public string bus;
public string channel;
public string die;
public string block;
}
那么我也可以创建一个列表吗?
List<EraseFailures> eFails = new List<EraseFailures>();
它编译得很好,但我想确保这是最好的方法。如果是,将值添加到我的列表的语法是什么?因为以下似乎不正确...
eFails.bus.Add("bus0");
似乎我可能必须使用我想要的值创建一个新结构,然后将其添加到列表中。
【问题讨论】:
-
似乎我可以用我想要的值创建一个新结构,然后将其添加到列表中。:是
-
想一想:
eFails.bus.Add("bus0");应该做什么? bus0 会添加到哪里? -
请注意mutable structs are evil,如果您觉得需要创建一个,您应该公开只读属性并在构造函数中设置属性。
-
您已经回答了您的问题并且您是正确的。 eFails.Add(new EraseFailures() { bus = "bus0" });