我正在尝试使用以下代码压缩C#List中的所有空白区域,但它不会编译...我在整个Regex
表达式下得到红色的“Error”行我不明白为什么。任何人都可以帮助我吗?
char[] delimiterChars = { ',', ':', '|', '\n' };
List<string> sortBox1 = new List<string>(textBox2.Text.Split(delimiterChars));
#region >> COMPRESS WHITESPACE
if (checkBox2.Checked)
{
sortBox1 = Regex.Replace(sortBox1, @"\s+", " ").Trim();
}
#endregion
答案 0 :(得分:2)
这样的事情可以解决问题:
if (checkBox2.Checked)
{
sortBox1 = sortBox1.Select(s => Regex.Replace(s, @"\s+", " ").Trim()).ToList();
}
您收到的错误很可能是因为您将sortBox1
传递给Replace
方法 - 它必须是string
而不是List
。
答案 1 :(得分:2)
Replace
方法适用于单个字符串,而不是字符串列表。您将遍历列表中的字符串:
for (int i = 0; i < sortBox1.Count; i++) {
sortBox1[i] = Regex.Replace(sortBox1[i], @"\s+", " ").Trim();
}
答案 2 :(得分:1)
您可以使用String.Trim函数
char[] delimiterChars = { ',', ':', '|', '\n' };
List<string> sortBox1 = new List<string>(checkBox2.Checked ? textBox2.Text.Split(delimiterChars).Select(s => s.Trim()) : textBox2.Text.Split(delimiterChars));