如何使用连续值初始化列表<type>?

mah*_*dar 3 .net c# initialization list

我有这样的课

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}
    };
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法用30个连续值初始化它,如图所示?

Hab*_*bib 12

使用Enumerable.Range如下:

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

要么

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

  • +1.我已经更新了相关的示例代码.考虑更新你的.还可以注意到`new Sample(){....}`不需要`()`:new Sample {A = ...}`. (2认同)