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