2013-02-25 58 views
0

我有結果的列表作爲添加在IList中使用循環

var attributeresult= " some list of items......"; 

現在我想要循環形式的結果,並加入到IList.but我只獲得最後插入值,但我想要獲得所有的價值。

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); 

         } 

我必須完成for循環而不是每個循環。

+0

你到底想達到什麼目的?當您嘗試在循環中添加內容時,您不會對自己有任何幫助。 – 2013-02-25 11:25:15

回答

3

移動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); 
} 
+2

添加說明:問題是您只創建ony對象,然後繼續編輯該對象的屬性;它仍然是你不斷添加到列表中的同一個對象。此修復程序會爲每次迭代創建一個新對象。 – Onkelborg 2013-02-25 11:28:31

+0

當你修復OP的代碼時,你是否也可以用'foreach'循環替換'Count()'和'ElementAt(i)'的重複使用?這可能是一個巨大的表現。 – Rawling 2013-02-25 11:30:28

+0

感謝Marcin..working精緻.. – 2013-02-25 11:31:42