C# 使用for循环添加IList

C# 使用for循环添加IList,c#,generics,for-loop,C#,Generics,For Loop,我有一份结果清单 var attributeresult= " some list of items......"; 现在我尝试循环表单结果并将其添加到IList中,但我只得到最后一个插入值,但我想得到所有的值 IList<DynamicColumn> idynamicttableColumns = new List<DynamicColumn>(); DynamicColumn dynamictableColumns = new DynamicColumn();

我有一份结果清单

var attributeresult= " some list of items......";
现在我尝试循环表单结果并将其添加到IList中,但我只得到最后一个插入值,但我想得到所有的值

 IList<DynamicColumn> idynamicttableColumns = new List<DynamicColumn>();
 DynamicColumn dynamictableColumns = new DynamicColumn();


 for (int i = 0; i < attributeresult.Count(); i++)
                        {
                            dynamictableColumns.Name = attributeresult.ElementAt(i).AttributeName;
                            dynamictableColumns.Type = attributeresult.ElementAt(i).AttributeSqlType;
                            dynamictableColumns.IsNullable = false;
                            idynamicttableColumns.Add(dynamictableColumns);

                        }
IList idynamicttableColumns=new List();
DynamicColumn dynamictableColumns=新的DynamicColumn();
对于(int i=0;i

我必须只使用for循环,而不是使用for每个循环。

Move
DynamicColumn dynamictableColumns=new DynamicColumn()编码到循环中:

IList<DynamicColumn> idynamicttableColumns = new List<DynamicColumn>();
int count = attributeresult.Count();

for (int i = 0; i < count; i++)
{
    var item = attributeresult.ElementAt(i);
    DynamicColumn dynamictableColumns = new DynamicColumn();
    dynamictableColumns.Name = item .AttributeName;
    dynamictableColumns.Type = item .AttributeSqlType;
    dynamictableColumns.IsNullable = false;
    idynamicttableColumns.Add(dynamictableColumns);
}
IList idynamicttableColumns=new List();
int count=attributeresult.count();
for(int i=0;i
Move
DynamicColumn dynamictableColumns=newdynamiccolumn()编码到循环中:

IList<DynamicColumn> idynamicttableColumns = new List<DynamicColumn>();
int count = attributeresult.Count();

for (int i = 0; i < count; i++)
{
    var item = attributeresult.ElementAt(i);
    DynamicColumn dynamictableColumns = new DynamicColumn();
    dynamictableColumns.Name = item .AttributeName;
    dynamictableColumns.Type = item .AttributeSqlType;
    dynamictableColumns.IsNullable = false;
    idynamicttableColumns.Add(dynamictableColumns);
}
IList idynamicttableColumns=new List();
int count=attributeresult.count();
for(int i=0;i
您想要实现什么目标?在循环过程中尝试添加内容时,您不会帮自己任何忙。您想实现什么?在循环期间尝试添加内容时,您不会帮自己任何忙。添加解释:问题是您只创建一个对象,然后继续编辑该对象的属性;它仍然是您不断添加到列表中的同一个对象。此修复程序会为每次迭代创建一个新对象。在修复OP的代码时,是否也可以将重复使用
Count()
ElementAt(i)
替换为
foreach
循环?这可能会对性能造成巨大影响。添加一个解释:问题是您只创建一个对象,然后继续编辑该对象的属性;它仍然是您不断添加到列表中的同一个对象。此修复程序会为每次迭代创建一个新对象。在修复OP的代码时,是否也可以将重复使用
Count()
ElementAt(i)
替换为
foreach
循环?这可能是一个巨大的性能打击。