我创建了一个多维数组:
string[,] array_questions = new string[dt.Rows.Count, dt.Columns.Count];
for (i = 0; i < dt.Rows.Count; i++)
{
for (j = 0; j < dt.Columns.Count; j++)
{
array_questions[i, j] = dt.Rows[i][j].ToString();
//Response.Write(array_questions[i, j]);
}
// Response.Write(Environment.NewLine);
//Response.Write("\n");
}
foreach (string number in array_questions)
{
//Response.Write(number + " ");
//Response.Write(Environment.NewLine);
Response.Write(string.Join(", ", number) + Environment.NewLine);
}
但它显示如下错误:错误1'string.Join(string,string [])'的最佳重载方法匹配有一些无效的参数..请帮忙
答案 0 :(得分:1)
您不需要for循环来加入字符串。
string.Join(", ", array_questions)
替换代码
foreach (string number in array_questions)
{
//Response.Write(number + " ");
//Response.Write(Environment.NewLine);
Response.Write(string.Join(", ", number) + Environment.NewLine);
}
与
Response.Write(string.Join(", ", array_questions) + Environment.NewLine);
答案 1 :(得分:1)
您需要展平数组才能使用string.Join
。它需要分隔符和一维数组,所以你可能需要做这样的事情。但不确定你想在这里实现什么。您正尝试将string.Join(string, string[])
称为string.Join(string, string)
尝试这样的事情:
var sdArray= new List<string>();
for (var i = 0; i < dt.Rows.Count; i++) //Get the length of first Dimension
{
for (var j = 0; j < dt.Columns.Count; j++) //Get the length of second Dimension
{
sdArray.Add(array_questions[i, j]);
}
}
///
Response.Write(string.Join(", ", sdArray) + Environment.NewLine);
使用Linq,您可以更好地平整这一点。
像这样的东西
string joinedSetOfQns= string.Join(",",
Enumerable.Range(0, dt.Rows.Count)
.SelectMany(i => Enumerable.Range(0, dt.Columns.Count)
.Select(j => array_questions[i, j])));
Response.Write(joinedSetOfQns + Environment.NewLine);
的辩护
public static string Join(
string separator,
params string[] value /// <-- Takes single Dimensional Array not a string.
)
for (var i = 0; i < dt.Rows.Count; i++)
{
var result = new List<string>();
for (var j = 0; j < dt.Columns.Count; j++)
{
result.Add(array_questions[i, j]);
}
Response.Write(string.Join(", ", result) + Environment.NewLine);
}