我有一个DataTable
,我从excel表中填充。 excel中的列名称包含两个单词之间的空格,即
我正努力实现
DataTable
列是从excel动态生成的。我试图删除单词之间的空格,但我似乎无法让它工作。我当前用于删除空格的代码看起来像
foreach (DataRow dr in cloned.Rows)
{
foreach (DataColumn col in cloned.Columns)
{
dr[col] = dr[col].ToString().Replace(" ", "");
}
}
是的,有人可以告诉我,我出错了。
答案 0 :(得分:3)
如果要修改列,则无需循环行:
foreach(DataColumn c in cloned.Columns)
c.ColumnName = String.Join("_", c.ColumnName.Split());
如果要删除空格,请使用String.Join("", c.ColumnName.Split())
。
答案 1 :(得分:2)
首先,您不需要循环DataTable
foreach (DataColumn col in cloned.Columns)
{
col.ColumnName = col.ColumnName.Replace(" ","");
}
答案 2 :(得分:0)
我认为更好地放置数据列的检查过程,当列类型为字符串然后删除空格
if (col.DataType == typeof(System.String))
{
dr[col] = dr[col].ToString().Replace(" ", "");
}
答案 3 :(得分:0)
您也可以在foreach循环中使用以下方法。
public static string TrimAllWithSplitAndJoin(string str)
{
return string.Concat(str.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
}
static Regex whitespace = new Regex(@"\s+", RegexOptions.Compiled);
public static string TrimAllWithRegex(string str)
{
return whitespace.Replace(str, "");
}
foreach (DataColumn col in cloned.Columns)
{
col.ColumnName = TrimAllWithSplitAndJoin(col.ColumnName);
}