具有字符串生成器和字符串格式的构造字符串
construction string with string builder et string format
在我有一个可以直接写入我的代码的修复项目之前:
public static string GetCsvStringFormat(int count)
{
var sb = new StringBuilder();
for (int i = 0; i < count; i++)
{
sb.AppendFormat("{{{0}}};", i);
}
return sb.ToString();
}
return string.Format(
RefTypeParseExtension.GetCsvStringFormat(3),
"No Id","Article","Amount"
);
但现在项目是动态的,可能只有1个或2个或更多项目。
我试过数组:
string[] Tete = { "No Id","Article","Amount","IsFix"}
string temp = "";
for (int i = 0; i < Tete.Length; i++)
{
if (i != Tete.Length-1) { temp += "\"" + Tete[i] + "\","; }
else { temp += "\"" + Tete[i] + "\""; }
}
return string.Format(
RefTypeParseExtension.GetCsvStringFormat(Tete.Length),
temp
);
我也尝试过使用字符串生成器:
public static string GetTete(string[] Tete)
{
var sb = new StringBuilder();
for (int i = 0; i < Tete.Length; i++)
{
if (i != Tete.Length - 1) { sb.AppendFormat("\"{0}\",", Tete[i]); }
else { sb.AppendFormat("\"{0}\"", Tete[i]); }
}
return sb.ToString();
}
我都收到同样的错误:
The index (zero base) must be greater than or equal to zero and less than the size of the argument list.
甚至认为数组和字符串生成器的结果 return 与原来完全一样。
我可能在这里遗漏了一些东西,但是你的第一个代码示例正在处理 String.Format
的重载,它接受 string
和 params object[] args
- 所以我认为你应该简单地做这个:
public static string GetTete(string[] Tete)
{
return string.Format(RefTypeParseExtension.GetCsvStringFormat(Tete.Length), Tete);
}
在我有一个可以直接写入我的代码的修复项目之前:
public static string GetCsvStringFormat(int count)
{
var sb = new StringBuilder();
for (int i = 0; i < count; i++)
{
sb.AppendFormat("{{{0}}};", i);
}
return sb.ToString();
}
return string.Format(
RefTypeParseExtension.GetCsvStringFormat(3),
"No Id","Article","Amount"
);
但现在项目是动态的,可能只有1个或2个或更多项目。
我试过数组:
string[] Tete = { "No Id","Article","Amount","IsFix"}
string temp = "";
for (int i = 0; i < Tete.Length; i++)
{
if (i != Tete.Length-1) { temp += "\"" + Tete[i] + "\","; }
else { temp += "\"" + Tete[i] + "\""; }
}
return string.Format(
RefTypeParseExtension.GetCsvStringFormat(Tete.Length),
temp
);
我也尝试过使用字符串生成器:
public static string GetTete(string[] Tete)
{
var sb = new StringBuilder();
for (int i = 0; i < Tete.Length; i++)
{
if (i != Tete.Length - 1) { sb.AppendFormat("\"{0}\",", Tete[i]); }
else { sb.AppendFormat("\"{0}\"", Tete[i]); }
}
return sb.ToString();
}
我都收到同样的错误:
The index (zero base) must be greater than or equal to zero and less than the size of the argument list.
甚至认为数组和字符串生成器的结果 return 与原来完全一样。
我可能在这里遗漏了一些东西,但是你的第一个代码示例正在处理 String.Format
的重载,它接受 string
和 params object[] args
- 所以我认为你应该简单地做这个:
public static string GetTete(string[] Tete)
{
return string.Format(RefTypeParseExtension.GetCsvStringFormat(Tete.Length), Tete);
}