将硬编码数据传输到阵列

时间:2015-03-12 22:16:28

标签: c# mysql arrays winforms

好的,所以我想问一下人们关于如何改进我的代码的建议,没有问题,我觉得这个网站没有代码问题就很奇怪。

目前,我的代码缺乏复杂性,根据定义它是硬代码,我想知道是否有方法可以通过将数据传输到数组或循环来减少硬代码。

我在这里有一些代码,我认为一小段代码就足够了。

 MySqlDataAdapter dAdapter = new MySqlDataAdapter(pQuery, Connection);
            dAdapter.Fill(dTable);
            dAdapter.Dispose();
            int One, Two, Three;
            One = Convert.ToInt32(dTable.Rows[0]["Cost"].ToString());
            Two = Convert.ToInt32(dTable.Rows[1]["Cost"].ToString());
            Three = Convert.ToInt32(dTable.Rows[2]["Cost"].ToString());

当然忽略了pQuery和Connection。我觉得自己已经走了很长一段路。'而我确信有一种更清洁的方法可以做到这一点。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

当然,你可以使用这样的列表和循环:

var costs = new List<int>();
foreach (DataRow row in dTable.Rows) {
    costs.Add(Convert.ToInt32(row["Cost"].ToString());
}

另请注意,您可以使用using块而不是显式调用Dispose

using (var dAdapter = new MySqlDataAdapter(pQuery, Connection)) {
    dAdapter.Fill(dTable);
}

答案 1 :(得分:1)

同样,您可以使用LINQ在一行中完成。不是一条线更好,只是另一种方式:

List<int> costs = (dTable.Rows
    .Cast<DataRow>()
    .Select(row => int.Parse(row["Cost"].ToString())))
    .ToList();