![](/img/trans.png)
[英]How to assign different values of variables to different instances of the same object?
[英]Iterate over datatable and assign values to different variables
我有一个包含6个值的列表的数据表。 我想遍历该表并将每个新行值分配给一个不同的变量。 该表由名为DataTasks的类填充。
目前,我就是这样做的,但是我确定必须有一个更好,更简洁的方法?
DataTable dt = new DataTable();
dt = DataTasks.CreateDataTableFromSQL(strSQL);
// Loop counter
int i = 0;
foreach (DataRow row in dt.Rows)
{
// Assign ranges - this is where I hope to have better code!!
switch(i)
{
case 0:
SomeClass.Range1 = (int)row["Range"];
break;
case 1:
SomeClass.Range2 = (int)row["Range"];
break;
case 2:
SomeClass.Range3 = (int)row["Range"];
break;
case 3:
SomeClass.Range4 = (int)row["Range"];
break;
case 4:
SomeClass.Range5 = (int)row["Range"];
break;
case 5:
SomeClass.Range6 = (int)row["Range"];
break;
default:
break;
}
// Increment counter
i++;
}
好吧,从外观上看,您只是根据行号分配“范围”的值。 那么,为什么不使用for循环而不使用索引来做到这一点呢? 当然,假设数据表中的行数始终为6。
这样的事情应该起作用:
SomeClass.Range1 = (int)dt.Rows[0]["Range"]; //Gets value in 'Range' column in first row.
SomeClass.Range2 = (int)dt.Rows[1]["Range"]; //Gets value in 'Range' column in second row.
//Add more here.
您可以尝试将所有范围存储在数组中
DataTable dt = new DataTable();
dt = DataTasks.CreateDataTableFromSQL(strSQL);
// Loop counter
int i = 0;
int[] ranges = new int[6];
//assuming you have 6 rows
foreach (DataRow row in dt.Rows)
{
ranges[i] = (int)row["Range"];
i++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.