Если вы хотите сделать это для каждой строки в вашей таблице, вы должны сделать что-то вроде этого:
DataTable MyTableWhenExport(DataTable dt)
{
// insert argument checking here
foreach (var dataRow in dt.AsEnumerable())
{
var value = dataRow.Field<string>("MyColumn");
if (string.IsNullOrWhitespace(value))
{
// handle accordingly
}
else
{
value = value.Substring(0, value.LastIndexOf('=') + 1);
dataRow.SetField("MyColumn", value);
}
}
return dt;
}
Обратите внимание, что вы не можете получить доступ к значениям строки, напрямую проиндексировав DataTable
.
Кроме того, в этом ответе предполагается, что в вашем распоряжении LINQ.
Обратите внимание, что, если есть вероятность, что строка может не содержать =
, LastIndexOf
вернет -1
.Я не проверял, но похоже, что в этом случае содержимое будет усечено (или будет сгенерировано исключение, если Substring
не нравится, когда вы запрашиваете подстроку длины 0. Я не помню).