C# 列表和数组

C# 列表和数组,c#,C#,我有5个值要添加到列表中。如何使用更少的代码行使其更干净 String[] values= new String[] { "AA", "BB", "CC", "DD", "EE", "FF" }; Values= new List<ValuesRow>(); foreach (var item in values) { Values.Add(new ValuesRow {

我有5个值要添加到列表中。如何使用更少的代码行使其更干净

String[] values= new String[] { "AA", "BB", "CC", "DD", "EE", "FF" };
 Values= new List<ValuesRow>();
        foreach (var item in values)
        {               
            Values.Add(new ValuesRow
            {
                Name = item,
                ID = 0
            });
        }

public class ValuesRow
{
    public String Name { get; set; }
    public String ID { get; set; }
}
String[]value=新字符串[]{“AA”、“BB”、“CC”、“DD”、“EE”、“FF”};
值=新列表();
foreach(值中的var项)
{               
值。添加(新值如下图所示)
{
名称=项目,
ID=0
});
}
公共阶级价值观
{
公共字符串名称{get;set;}
公共字符串ID{get;set;}
}

如果列表与示例中的列表不同:

var names = new[] { "AA", "BB", "CC", "DD", "EE", "FF" };
var Values = names.Select(name => new ValuesRow { Name = name, ID = "0" }).ToList();
否则

var names = new[] { "AA", "BB", "CC", "DD", "EE", "FF" };
var newElements = names.Select(name => new ValuesRow { Name = name, ID = "0" });
Values.AddRange(newElements);

您可以使用
AddRange
方法或从数组创建新列表

Values.AddRange(values.Select((value, index) => new ValuesRow {Name = value, ID = index.ToString() }));
List vR=新列表();
foreach(值中的字符串项)
{
添加(新值如下{item,“0”});
}

您想这样做吗?

您也可以这样初始化列表:

Values = new List<ValuesRow> { new ValuesRow { Name = "AA", ID = 0}, 
                               new ValuesRow { Name = "BB", ID = 0}
                             };
        var values = new List<ValuesRow>
                         {
                             new ValuesRow {ID = "0", Name = "AA"},
                             new ValuesRow {ID = "0", Name = "BB"},
                             new ValuesRow {ID = "0", Name = "CC"},
                             new ValuesRow {ID = "0", Name = "DD"},
                             new ValuesRow {ID = "0", Name = "EE"},
                             new ValuesRow {ID = "0", Name = "FF"}
                         };
Values=newlist{newvaluesrow{Name=“AA”,ID=0},
新值如下{Name=“BB”,ID=0}
};

如果只需要添加编译时已知的、代码较少的5条记录,可以尝试以下方法:

        var Values = new List<ValuesRow>
        {
            new ValuesRow{Name="Value1", ID="1"}
            new ValuesRow{Name="Value2", ID="2"}
            new ValuesRow{Name="Value3", ID="3"}
            new ValuesRow{Name="Value4", ID="4"}
            new ValuesRow{Name="Value5", ID="5"}
        };
var值=新列表
{
新值显示{Name=“Value1”,ID=“1”}
新值显示{Name=“Value2”,ID=“2”}
新值显示{Name=“Value3”,ID=“3”}
新值显示{Name=“Value4”,ID=“4”}
新值显示{Name=“Value5”,ID=“5”}
};
String[]value=新字符串[]{“AA”、“BB”、“CC”、“DD”、“EE”、“FF”};
var值=新列表();
Values.AddRange(Values.Select(v=>newvaluesrow(){Name=v,ID=“0”}));

如何使用对象初始化器,其工作原理如下:

Values = new List<ValuesRow> { new ValuesRow { Name = "AA", ID = 0}, 
                               new ValuesRow { Name = "BB", ID = 0}
                             };
        var values = new List<ValuesRow>
                         {
                             new ValuesRow {ID = "0", Name = "AA"},
                             new ValuesRow {ID = "0", Name = "BB"},
                             new ValuesRow {ID = "0", Name = "CC"},
                             new ValuesRow {ID = "0", Name = "DD"},
                             new ValuesRow {ID = "0", Name = "EE"},
                             new ValuesRow {ID = "0", Name = "FF"}
                         };
var值=新列表
{
新值如下{ID=“0”,Name=“AA”},
新值如下{ID=“0”,Name=“BB”},
新值如下{ID=“0”,Name=“CC”},
新值如下{ID=“0”,Name=“DD”},
新值如下{ID=“0”,Name=“EE”},
新值如下{ID=“0”,Name=“FF”}
};

通过在ValuesRow上实现构造函数,这也可以稍微缩短一点。在这种情况下,您可以只使用:new ValuesRow(“Value1”,“1”),这是一条很长的路。您可以使用“循环”来完成它。@Serkan这是您的个人意见。我知道的每一条评论都是您的个人意见。谢谢。或者直接使用数组作为构造函数参数。