繁体   English   中英

遍历数据表并将值分配给不同的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM