2014-09-22 38 views
3

我有这样如何用连续值初始化列表<type>?

public class Sample 
{ 
    public string A { get; set; } 
    public int B { get; set; } 
} 

var sampleValues = new List<Sample>(){ 
     new Sample(){ A = "a1", B = 1 }, 
     new Sample(){ A = "a2", B = 2 }, 
     new Sample(){ A = "a3", B = 3 }, 
     new Sample(){ A = "a4", B = 4 }, 
     ..... 
     new Sample(){ A ="a30", B = 30} 
    }; 

类是有连续用30个值初始化它的任何简单的方法如图所示?

+0

我格式化您的示例代码(改了一下),以默认C#编码规则排列(大写的类和属性) 。如果它不符合你的风格/目标,请随时恢复。 – 2014-09-22 16:14:14

回答

12

使用Enumerable.Range,如:

List<Sample> samvalues = Enumerable.Range(1, 30) 
           .Select(r => new Sample {A = "a" + r, B = r}) 
           .ToList(); 

或者

List<Sample> samvalues = Enumerable.Range(1, 30) 
        .Select(r => new Sample {A = String.Format("{0}{1}", "a", r), B = r}) 
        .ToList(); 
+0

感谢其工作 – mahindar 2014-09-22 15:59:55

+0

@mahindar,欢迎您。我相信您的代码不是真正的代码,但是如果您使用类似的命名约定,请参阅[一般命名约定 - Microsoft](http://msdn.microsoft.com/zh-cn/library/ms229045(v = vs.110).aspx)为你的类名称,属性等。 – Habib 2014-09-22 16:04:15

+0

其实它只是一个简单易懂的示例代码。 – mahindar 2014-09-22 16:05:57