属性中的c#列表是数组

属性中的c#列表是数组,c#,C#,这是我的属性类: class Actions { public string[] Style { get; set; } } 这是我的主要方法: Actions action = new Actions(); List<string> list = new List<string>(); list.Add("one"); list.Add("two"); foreach (var item in list) { for (int i = 0;

这是我的属性类:

 class Actions
 {
     public string[] Style { get; set; }
 }
这是我的主要方法:

Actions action = new Actions();

List<string> list = new List<string>();
list.Add("one");
list.Add("two");

foreach (var item in list)
{
    for (int i = 0; i < action.Style.Length; i++)
    {
        action.Style[i] = item.ToString();
        Console.WriteLine(action.Style[i]);
    }                  
}
Actions动作=新动作();
列表=新列表();
列表。添加(“一”);
列表。添加(“两个”);
foreach(列表中的变量项)
{
for(int i=0;i
如何使用列表项填充属性

这给了我一个例外:

“对象引用未设置为对象的实例”。

无需逐个添加项目,您可以使用列表中的
ToArray()
方法,如下所示:

List<string> list = new List<string>();
list.Add("one");
list.Add("two");

Actions action = new Actions {
    Style = list.ToArray()
};
List List=新列表();
列表。添加(“一”);
列表。添加(“两个”);
动作动作=新动作{
Style=list.ToArray()
};

必须创建
样式
属性的实例

List<string> list = new List<string>();
list.Add("one");
list.Add("two");
Actions action = new Actions();
action.Style=new string[list.Count];

foreach (var item in list)
{
    for (int i = 0; i < action.Style.Length; i++)
    {
        action.Style[i] = item.ToString();
        Console.WriteLine(action.Style[i]);
    }                  
}
List List=新列表();
列表。添加(“一”);
列表。添加(“两个”);
动作动作=新动作();
action.Style=新字符串[list.Count];
foreach(列表中的变量项)
{
for(int i=0;i
正如已经指出的那样,
Style
始终为空,因为您共享了代码@埃尔德尼兹和保罗有着不同的解决方法。显然,您的示例代码只是一个示例片段,因此,如果前两个原因不起作用,这里有2个其他选项(我只是免费处理,请原谅任何输入错误)。 1) 您可以让
操作
类始终返回非空对象

class Actions
{
    private string[] _style;
    public string[] Style 
    {
        get { return _style ?? new string[0]; }
        set { _style = value; }
    }
}
请注意,这将允许您始终按照请求查看style属性的输出,假设空数组和null是相同的

2) 可以使循环容忍空值

foreach (var item in list)
{
    for (int i = 0; i < action?.Style.Length ?? 0; i++)
    {
        action.Style[i] = item.ToString();
        Console.WriteLine(action.Style[i]);
    }                  
}
foreach(列表中的变量项)
{
for(int i=0;i

最后,作为提示,如果您附加了调试器,并且正在单步执行代码,VisualStudio将帮助您非常容易地查明这些错误。花点时间与调试器成为朋友。如果它给你一个错误,你不明白,做一个快速的网络搜索。您未来的自我将感谢您。

样式
尚未实例化。不确定Actions是否是最适合您的类的名称。这应该是一个单数字。很明显,行为是不允许的,所以你可能想做一些更具描述性的事情。也许我错了,但是第二个列表项会覆盖你风格的内容。。。这是有意的吗?迭代数组,但这个数组的大小是多少?代码看起来很混乱。如何查看Style属性的输出可能存在重复?取决于原始问题是否是“如何使用列表项填充属性?”问题是Style没有instantiated@Alex如何查看样式属性的输出?