是一个条件字符串.join
本文关键字:DataRow from string replace 有效 join 一个 字符串 条件 | 更新日期: 2023-09-27 18:11:10
下面是我的工作代码:
DataSet myDataSet = new DataSet();
mySqlDataAdapter.Fill(myDataSet);
DataTable positionData = myDataSet.Tables["Table"];
if (siteData.Rows.Count > 0)
{
positionDV = string.Join<object>(", ",
from r in siteData.Rows.OfType<DataRow>() select r[1]);
}
else
{
positionDV = "";
}
positionDV的内容看起来像"14,47,5,11"等,其中数据库中的每个NULL值都有一个空白空间。
我想要实现的是,值是NULL实际上被写入字符串为NULL。所以上面的例子看起来像" 14,47,5,null, 11"。
positionDV只是为了简洁而显示的一个字符串,实际上每个数据集有几十个,每个值接近10万个。
我要找的是一种插入null而不是空格的方法。在字符串期间创建条件是否更有效?连接(如果是这样,我该怎么做?),还是直接创建字符串,然后创建一个单独的赋值,这样做更有效:
positionDV += positionDV.replace(", ,", ", null,");
只使用Enumerable.Select
, DataRow.Field
支持可空类型。然后,您可以使用条件运算符(?:)来获得int-value作为字符串或"null",如果它是空的/null:
IEnumerable<int?> positionValues = myDataSet.Tables["Table"].AsEnumerable()
.Select(r => r.Field<int?>(1));
IEnumerable<string> positions = positionValues
.Select(v => v.HasValue ? v.Value.ToString() : "null");
string positionDV = string.Join(", ", positions);
本文关键字:DataRow from string replace 有效 join 一个 字符串 条件 | 更新日期: 2023-09-27 18:11:10
下面是我的工作代码:
DataSet myDataSet = new DataSet();
mySqlDataAdapter.Fill(myDataSet);
DataTable positionData = myDataSet.Tables["Table"];
if (siteData.Rows.Count > 0)
{
positionDV = string.Join<object>(", ",
from r in siteData.Rows.OfType<DataRow>() select r[1]);
}
else
{
positionDV = "";
}
positionDV的内容看起来像"14,47,5,11"等,其中数据库中的每个NULL值都有一个空白空间。
我想要实现的是,值是NULL实际上被写入字符串为NULL。所以上面的例子看起来像" 14,47,5,null, 11"。
positionDV只是为了简洁而显示的一个字符串,实际上每个数据集有几十个,每个值接近10万个。
我要找的是一种插入null而不是空格的方法。在字符串期间创建条件是否更有效?连接(如果是这样,我该怎么做?),还是直接创建字符串,然后创建一个单独的赋值,这样做更有效:
positionDV += positionDV.replace(", ,", ", null,");
只使用Enumerable.Select
, DataRow.Field
支持可空类型。然后,您可以使用条件运算符(?:)来获得int-value作为字符串或"null",如果它是空的/null:
IEnumerable<int?> positionValues = myDataSet.Tables["Table"].AsEnumerable()
.Select(r => r.Field<int?>(1));
IEnumerable<string> positions = positionValues
.Select(v => v.HasValue ? v.Value.ToString() : "null");
string positionDV = string.Join(", ", positions);