删除字符串数组中所有字符串中的字符

时间:2014-11-11 11:43:08

标签: c# .net string

我正在开发一个C#.NET Framework库。

如果我有这个数组string[] elements。我想在所有这些字符中删除此字符\",如何在一条指令中执行此操作?

我知道我可以这样做:

foreach(string element in elements)
   element = element.Replace("\"", string.Empty);

有没有办法用一句话来做? (不使用foreach)。

3 个答案:

答案 0 :(得分:7)

您可以使用新值创建新数组:

var newValues = elements.Select(x => x.Replace("\"", string.Empty)).ToArray();

如果创建一个新阵列会出现问题,你应该坚持使用循环方法。

此外,您无法更改foreach循环变量。您应该收到编译错误:

  

无法分配到'元素'因为它是一个foreach迭代变量'

您需要for循环:

for(int i = 0; i < elements.Length; i++)
    elements[i] = elements[i].Replace("\"", string.Empty);

答案 1 :(得分:3)

首先,您的代码无法正常工作,因为它只会创建string的新实例。您不会使用新值更新数组。

你可以使用LINQ的Select来获得你想要的东西:

elements = elements.Select(x => x.Replace("\"", string.Empty)).ToArray();

此代码将使用elements的修改值创建一个新数组。请注意,此代码的效率低于常规for循环,我建议在这种情况下使用。

答案 2 :(得分:1)

在一行中,确定,简单,只需删除该换行符并缩进:

foreach(string element in elements) element = element.Replace(@"\"", string.Empty);

不使用foreach循环?当然,请改为使用:

for (int i = 0; i < elements.Length; i++) elements[i] = elements[i].Replace(@"\"", string.Empty);

您可能已经注意到我放在那里的@。非常重要,基本上忽略了转义序列,所以它实际上摆脱了\"而不仅仅是"