如何拥有一个主要用作单个字符串的字符串数组?

Bit*_*ter 0 c# arrays string implicit-conversion

在我的项目中,我有一个类(可能有多个派生类),其中一个字段是一个字符串。

我们也有实例化这个类的许多对象的代码(出于技术原因,每个实例都有单独的代码)。所以代码文件可能很长。

对于大多数情况,这是可以的。但在极少数情况下,我需要有一个字符串数组作为 TestValue。我知道我可以将其声明为string[]. 但是因为通常我们只分配单个字符串,所以当只需要一个字符串时,有可能不必总是在代码中显式创建一个数组,就像这样:

public class Datapoint
{
    public uint Id;

    public string[] TestValue;
}

public void CreateEntries()
{
   Table.Add(new Datapoint { Id = 1, TestValue = "123" });
   Table.Add(new Datapoint { Id = 2, TestValue = "12.9" });
   Table.Add(new Datapoint { Id = 3, TestValue = "Enabled" });
   Table.Add(new Datapoint { Id = 4, TestValue = "Temperature" });
   Table.Add(new Datapoint { Id = 5, TestValue = { "12.3", "9.8", "7.3" } });
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

Som*_*ody 5

您可以使用以下params选项创建构造函数:

public class Datapoint
{
    public uint Id;

    public string[] TestValue;

    public Datapoint(uint id, params string[] testValue)
    {
        Id = id;
        TestValue = testValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法是:

Table.Add(new Datapoint(1, "123"));
Table.Add(new Datapoint(2, "12.9"));
Table.Add(new Datapoint(3, "Enabled"));
Table.Add(new Datapoint(4, "Temperature"));
Table.Add(new Datapoint(5, "12.3", "9.8", "7.3"));
Run Code Online (Sandbox Code Playgroud)