2011-10-17 21 views
2

這是一個非常基本或者相當簡單的問題。 在我的代碼中,我使用foreach值將值放入字符串變量中。 對於每次迭代,我想要在一個數組列表中存儲(一個接一個地)變量值。然後通過索引檢索數列值。如何動態地將值存儲在ArrayList中

代碼我想:

foreach(string abc in namestring) 
{ 
    string values = abc; 
    ArrayList list = new ArrayList(); 
    list.Add(values); 
} 

例如:

如果 'namestring' 中包含的值作爲湯姆,迪,哈利。然後'列表' 包含那些值爲列表(0)= tom,列表(1)= dik,列表(2)= 哈里。

問題是ArrayList中

+1

你的問題沒有意義。什麼是editorValue?究竟是什麼問題? list.Add()應該可以正常工作來添加字符串。雖然我會推薦使用通用列表來代替。 – GazTheDestroyer

+1

只是好奇:當它已經被定義爲'string'時,爲什麼在'abc'上使用'.ToString()'? – ebb

+0

我很難理解你的問題,你可以詳細說明一下嗎?你不必在abc上使用toString()。它已經是一個字符串了。 – Marthin

回答

6

你必須聲明你ArrayList外循環:

ArrayList list = new ArrayList(); 
foreach(string abc in namestring) 
{ 
    list.Add(abc); 
} 

此外,如果您是在.NET 2.0和以上,你應該使用強類型List<string>,而不是:

List<string> list = new List<string>(); 
+0

你也應該考慮使用列表,而不是ArrayList – inspite

+0

@Broken Glass:thnx很多解決方案。在foreach循環上面聲​​明arraylist,使我的方式清晰。 – Kings

2

申報ArrayList list = new ArrayList();存儲的foreach上述值

+0

Aap sahi ho dost。只需在foreach循環上面聲​​明arraylist即可。不能選擇超過1個答案,否則你也會在那裏。 – Kings

+0

Thats ok ..沒有問題:) – Ankur

2

您可能想在foreach循環之前創建清單。 Atm在收集新列表中創建foreach字符串,然後僞造其引用。

+0

@Aug:是的。在foreach循環上面聲​​明arraylist,是正確的。 Tnx求助。也是爲了解釋原因。這是下次避免這個錯誤所需要的。 – Kings

1

看起來你的namestring已經是一個集合(實現ICollection)...如果是這樣你可以做到沒有循環。

 ArrayList list = new ArrayList(); 
     list.AddRange(namestring); 
     return list; 

 List<string> list = new List<string>(); 
     list.AddRange(namestring); 
     return list; 

,或者使用簡單的構造

 ArrayList list = new ArrayList(namestring); 

 List<string> list = new List<string>(namestring); 
+0

DKNAAK-thnx用於照料許多其他有效的替代品。我已經得到了我的解決方案,我在foreach循環之上聲明瞭arraylist。 – Kings

1
var list = new ArrayList(); 
foreach(string abc in namestring) 
{   
    list.Add(abc); 
} 
1

代碼可以b e固定移動foreach之外的「new ArrayList()」行。

反正...

如果 'namestring' 中包含的值作爲湯姆,迪,哈利。然後名單'應該 包含這些值作爲列表(0)=湯姆,列表(1)= DIK,列表(2)=哈里

namestring已經包含那些,如namestring [0] =湯姆等所以你可以照原樣使用它。

+0

亞歷克斯感謝。通過在foreach循環之外放置數組列表聲明,我明白瞭解決方案。 – Kings

相關問題