2010-08-04 358 views
2

我想從c#中ArrayList的項中刪除所有'\ 0'字符。這裏是我的代碼:如何更改ArrayList值

ArrayList users = um.getAllUsers(server,Instance); //user count=3 

所以現在我想以replase都加一個代碼「\ 0」與列表中的所有項目空字符串。

這可能嗎?

+4

用戶是什麼類型?一個字符串? – w69rdy 2010-08-04 10:15:00

回答

4

首先,這是一個有點奇怪還是在2010年使用ArrayList ...也有駱駝套管名稱(getAllUsers而不是GetAllUsers),但仍...

for (int i = 0; i < users.Count; i++) 
{ 
    string user = (string) users[i]; 
    user = user.Replace("\0", ""); 
    users[i] = user; 
} 
+0

它在這種情況下正確無關緊要,但我會使用if(user ==「\ 0」)user = string.Empty而不是.Replace因爲它不僅替換字符串是否=「\ 0」。 – 2010-08-04 10:17:36

+0

@lasseespeholt:目前還不清楚這個問題實際上是什麼意思 - 它是否只是替換整個項目或每個項目中的「\ 0」。 – 2010-08-04 10:24:43

2

如果你不堅持了一些古代版本的.NET的,你可能有興趣升級您的代碼使用通用List<T>收集和看看LINQ:

List<string> users = um.getAllUsers(server,Instance) 
         .Cast<string>() 
         .Select(user => user.Replace("\0", "")) 
         .ToList(); 

(我假設getAllUsers返回一個ArrayList合作ntaining string實例)。

0

是你可以,只需調用替換方法類似:

ArrayList users = um.getAllUsers(server,Instance); 

for (int i = 0; i < users.Count; i++) 
{ 
    users[i] = ((String) users[i]).Replace ("\0", ""); 
} 

但我會建議,如果你能,而不是使用ArrayList的名單。泛型對你有好處:-)