2010-08-04 173 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的名单。泛型对你有好处:-)