c# - 如何修复 List<List<string>> 中的数据

标签 c# list

我有一个名为 result 的变量,它是一个

List<List<string>>

我想解析每个元素并修复它(删除空格等)

            i = 0;
            foreach (List<string> tr in res)
            {
                foreach (string td in tr)
                {
                    Console.Write("[{0}] ", td);
                    td = cleanStrings(td); // line with error
                    i++;
                }
                Console.WriteLine();
            }

    public string cleanStrings(string clean)
    {
        int j = 0;                
        string temp = System.Text.RegularExpressions.Regex.Replace(clean, @"[\r\n]", "");
        if (temp.Equals("&nbsp;"))
        {
            temp = " ";
            temp = temp.Trim();
        }
        clean = temp;                        
        return clean;
    }

Error 1 Cannot assign to 'td' because it is a 'foreach iteration variable'

我该如何解决这个问题?

最佳答案

基本上你不必使用foreach。 .NET 中的迭代器基本上是只读的。例如:

for (int i = 0; i < tr.Count; i++)
{
    string td = tr[i];
    Console.Write("[{0}] ", td);
    tr[i] = CleanStrings(td);
}

(请注意,我使用了变量 i,您正在递增但没有使用它。)

或者,考虑使用 LINQ:

res = res.Select(list => list.Select(x => CleanStrings(x)).ToList())
         .ToList();

请注意,这会创建一个列表,其中包含列表,而不是改变任何现有列表。

关于c# - 如何修复 List<List<string>> 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12080240/

相关文章:

c# - 堆栈溢出异常——为什么?

c# - 对列表进行排序,其中每个项目都指的是应该出现在它之前/之后的项目

c# - 一行分配变量的性能

c# - 有没有办法在 Windows 窗体中延迟事件处理程序(比如 1 秒)

c# - 对鼠标移动有即时 react 的线条图?

.NET 排序列表 <> 与关联数组

list - Python 2.7 : Remove elements from a multidimensional list

list - Haskell函数交换列表中的第二个元素

java - java中向链表添加元素方法的实现

c# - 在服务器应用程序中将中间证书与 SslStream 和 X509Certificate2 一起使用