2010-07-13 118 views
0

我有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; } 
} 

回答

1

你也可以初始化列表是这样的:如果你需要添加只有 5记录它们在编译时已知用更少的代码,你可以试试这个

Values = new List<ValuesRow> { new ValuesRow { Name = "AA", ID = 0}, 
           new ValuesRow { Name = "BB", ID = 0} 
          }; 
6

如果列表中不存在,因为你的样品中:

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); 
1

你可以使用AddRange方法或从阵列创建新的列表。

Values.AddRange(values.Select((value, index) => new ValuesRow {Name = value, ID = index.ToString() })); 
+0

或者只是使用该数组作为构造函数参数。 – Gertjan 2010-07-13 07:27:19

0
List<ValuesRow> vR = new List<ValuesRow>(); 

foreach(string item in values) 
{ 
vR.Add(new ValuesRow {item,"0"}); 
} 

难道你想这样吗?

6

 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"} 
     }; 
+1

在这种情况下,通过在ValuesRow上实现一个构造函数,这也可能会稍微缩短一点,您可以使用:new ValuesRow(“Value1”,“1”) – Gertjan 2010-07-13 07:24:58

+0

这是一条很长的路。你可以使用循环。 – 2010-07-13 07:26:20

+0

@Serkan这是你的个人意见。 – Incognito 2010-07-13 07:50:26

0
String[] values= new String[] { "AA", "BB", "CC", "DD", "EE", "FF" }; 
var Values = new List<ValuesRow>(); 
Values.AddRange(values.Select(v => new ValuesRow() {Name = v, ID = "0"})); 
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"} 
         };