将长 CSV 字符串拆分为多个字符串变量
本文关键字:字符串 变量 拆分 CSV 将长 | 更新日期: 2023-09-27 18:31:30
我有一个很长的CSV字符串,最大长度为44,119个字符。我有一个接受 1 到 6 个参数的 SQL 存储过程,每个参数varchar(8000)
这样将长 CSV 划分为多个参数并将其传递给存储过程。
我的存储过程工作正常,但是如何将长 CSV 划分为不同的字符串变量,使它们不超过 8000 个字符的字符串长度?
例如:
string myLongCSV = "1,2,345,5674,234,22,34..." //a long CSV
我不能使用SubString (0, 8000)
因为第 8,000 个字符可能会破坏长 CSV 中的数字而不是逗号。
我想用 C# 编写代码,使其将长 CSV 中的所有数字划分为不同的字符串变量,使每个变量长度不超过 8000 个字符。
如果
可以,请修改 SQL 存储过程以使用数据类型为 VACHAR(MAX)
的单个参数,因为这最多存储 2,147,483,647 个字符。
如果不能,请使用String.Split
函数,如下所示:
string[] words = myLongCSV.Split(',');
foreach (string word in words)
{
// some logic here to construct your parameters and check their length.
}
试试这个。
这个想法是获取第 8,000 个字符,如果它是一个数字,则减小索引直到它是 ',',此时您可以执行以下操作Substring()
,如下所示:
string s = "123,45636...";
int index = 7;
while (true)
{
if (s[index] == ',')
{
s = s.Substring(0, index);
break;
}
else
{
index--;
}
}