如何创建匿名类型列表?

pri*_*kar 0 c#

我正在尝试创建一个匿名类型列表,如下所示,但我在某处犯了错误

for (int i = 0; i < 10; i++)
{    
    var list = new[]
    {
        new { Number = i, Name = string.Concat("name",i) }
    };
}
Run Code Online (Sandbox Code Playgroud)

例如

var o1 = new { Id = 1, Name = "Name1" }; 
var o2 = new { Id = 2, Name = "Name2" };

var list = new[] { o1, o2 }.ToList();
Run Code Online (Sandbox Code Playgroud)

如何在运行时做同样的事情?

需要帮助.

Hab*_*bib 5

没有错误......但是集合总是1

那是因为您正在每次迭代中创建一个新列表

你可以这样尝试:

var list = new[] { new { Number = 0, Name = "Name1" } }.ToList(); //just to create a 
                                                  //list of anonymous type object
list.Clear();

for (int i = 0; i < 10; i++)
{
    list.Add(new { Number = i, Name = string.Concat("name",i) });
}
Run Code Online (Sandbox Code Playgroud)

或者一种方法是使用List<Object>如下:

List<object> list = new List<object>();

for (int i = 0; i < 10; i++)
{
    list.Add(new { Number = i, Name = string.Concat("name",i) });
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用Enumerable.Range之类的

var list = Enumerable.Range(0, 10)
                    .Select(i => new { Number = i, Name = "SomeName" })
                    .ToList();
Run Code Online (Sandbox Code Playgroud)