下面是我的代码
string Cmp_Cd_Typ_Id1_1 = "";
for (a = 0; a < dsDeviceMatch2.Tables[0].Columns.Count; a++)
{
for (b = 0; b < dsDeviceMatch2.Tables[0].Columns.Count; b++)
{
Cmp_Cd_Typ_Id1_1 = Cmp_Cd_Typ_Id1_1 + dsDeviceMatch2.Tables[0].Rows[a][b].ToString() + ",";
}
}
我在Cmp_Cd_Typ_Id1_1变量中保存数据。我需要分别保存每次迭代的数据,但在这里我得到的结果为a,b,c,d。但我需要单独保存一个单独的b等。我怎样才能实现这个
答案 0 :(得分:2)
索引器a
应该应用于Rows集合,而不应该应用于Columns集合
for (a = 0; a < dsDeviceMatch2.Tables[0].Rows.Count; a++)
强烈建议使用StringBuilder而不是像
这样的字符串连接StringBuilder result = new StringBuilder();
for (int a = 0; a < dsDeviceMatch2.Tables[0].Rows.Count; a++)
{
for (int b = 0; b < dsDeviceMatch2.Tables[0].Columns.Count; b++)
{
result.Append(dsDeviceMatch2.Tables[0].Rows[a][b].ToString() + ",");
}
}
string Cmp_Cd_Typ_Id1_1 = result.ToString();
相反,如果您希望行彼此分开,那么您需要在此方法中添加List<strings>
// Each row will be an element of this list
List<string> rows = new List<string>();
for (int a = 0; a < dsDeviceMatch2.Tables[0].Rows.Count; a++)
{
StringBuilder result = new StringBuilder();
for (int b = 0; b < dsDeviceMatch2.Tables[0].Columns.Count; b++)
{
result.Append(dsDeviceMatch2.Tables[0].Rows[a][b].ToString() + ",");
}
// Add the row to the list removing the last comma
rows.Add(result.ToString(0, result_1.Length - 1);
}
答案 1 :(得分:1)
您正在连接相同字符串上的值,您可以使用字符串数组或列表来存储值,例如:
List<string> Cmp_Cd_Typ_Id1_1 = new List<string>;
for (a = 0; a < dsDeviceMatch2.Tables[0].Columns.Count; a++)
{
for (b = 0; b < dsDeviceMatch2.Tables[0].Columns.Count; b++)
{
Cmp_Cd_Typ_Id1_1.Add(dsDeviceMatch2.Tables[0].Rows[a][b].ToString());
}
}