Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建匿名类型列表?_C# - Fatal编程技术网

C# 如何创建匿名类型列表?

C# 如何创建匿名类型列表?,c#,C#,我试图创建一个匿名类型列表,如下所示,但我在某个地方出错了 for (int i = 0; i < 10; i++) { var list = new[] { new { Number = i, Name = string.Concat("name",i) } }; } 如何在运行时执行相同的操作 需要帮助 无错误…但集合始终为1 这是因为您在每次迭代中都要创建一个新列表 您可以像这样尝试: var list = new[] { new {

我试图创建一个匿名类型列表,如下所示,但我在某个地方出错了

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

如何在运行时执行相同的操作

需要帮助


无错误…但集合始终为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) });
}

您需要一个列表对象来存储它

List<Object> o = new List<Object>();
for (int i = 0; i < 10; i++)
{    

    o.Add(new { Number = i, Name = string.Concat("name",i) });
}

o.Dump();

首先定义一个列表,然后将值存储在For循环中

List<Object> NewList = new List<Object>();
        for (int i = 0; i < 10; i++)
        {
            NewList.Add(
            { 
               new { Number = i, Name = string.Concat("name",i) }

            });
        }    

您是否考虑过使用LINQ执行以下操作:

var anonList = Enumerable
    .Range(1, 10)
    .Select(i => new { 
        ID = i, 
        Name = String.Format("Name{0}", i)
    });

当然,您可以将Enumerable.Range替换为任何可供选择的列表。

您遇到了什么错误?没有错误…但集合始终是1这是因为您在每次使用forloopcollection初始化时创建新列表,会导致每次迭代都有一个新实例。@Rajeev Kumar,请参阅我的编辑如何在运行时执行相同的操作?循环中的中间列表完全没有必要。此外,您的代码还创建了一个匿名类型数组的列表。是的,您是对的。再说一遍,我真的不知道他想要实现什么。他想要一个包含十个匿名对象的列表。这个问题并不含糊。您的答案是错误的,即使收到通知,您也不会更正它。谁知道他可能需要为每个答案设置一个数组?循环中的中间列表完全没有必要。此外,您的代码还创建了一个匿名类型数组的列表。他只是喜欢对人进行向下投票,因为我们用列表集合包装原始答案。@cherhan:您似乎不明白。OP需要一个包含十个匿名对象的列表。你们两个正在创建一个包含十个匿名对象数组的列表,每个数组都有一个元素。没有火焰,但我们在他修改问题之前添加了它。@DanielHilgarth感谢您的解释。我明白你的意思。我更新了我的答案
int i = 0;
while(i < 10)
{
    list.Add(new { Number = i, Name = string.Concat("name",i) });
    i++;
}
List<Object> NewList = new List<Object>();
        for (int i = 0; i < 10; i++)
        {
            NewList.Add(
            { 
               new { Number = i, Name = string.Concat("name",i) }

            });
        }    
var anonList = Enumerable
    .Range(1, 10)
    .Select(i => new { 
        ID = i, 
        Name = String.Format("Name{0}", i)
    });
int i = 0;
while(i < 10)
{
    list.Add(new { Number = i, Name = string.Concat("name",i) });
    i++;
}