操纵字符串数据表内容

时间:2014-06-05 18:52:36

标签: c# datatable .net-3.5

我有一个数据表,其中一些列有逗号分隔的字符串,字之间没有空格和它们之间的逗号(abc,def)。你能告诉我如何在每个逗号(abc,def)之后添加一个空格,而不是循环遍历每一行(Linq?)?列可以有一个或没有字符串。 感谢。

2 个答案:

答案 0 :(得分:0)

using System.Threading.Tasks;

public static void Main()
{
            var table = new DataTable("MyTable");
            table.Columns.Add("Col1", typeof(string));
            table.Rows.Add("abc,def");
            table.Rows.Add("ghi,jkl");

            Parallel.ForEach(table.AsEnumerable(), (row => row.SetField("Col1", row.Field<string>("Col1").Replace(",", ", "))));    
}

对于.NET 3.5,您可以应用List ForEach实现:

new List<DataRow>(table.AsEnumerable()).ForEach(row => row.SetField("Col1", row.Field<string>("Col1").Replace(",", ", ")));

或者更好的是,定义扩展方法:

public static class IEnumerableExtensions
{
    public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
    {
        foreach (var item in source)
            action(item);            
    }
}

然后:

table.AsEnumerable().ForEach(row => row.SetField("Col1", row.Field<string>("Col1").Replace(",", ", ")));

答案 1 :(得分:-1)

您可以运行包含更新语句的SqlCommand,例如:

UPDATE table SET column = REPLACE(column, ',', ', ');