【问题标题】:How to convert DataTable to List<KeyValuePair<string, int>>如何将 DataTable 转换为 List<KeyValuePair<string, int>>
【发布时间】:2013-01-07 20:59:31
【问题描述】:

我有一个有 4 列的 DataTableNameContactAddressMarks)。我想将我的DataTable 转换为List&lt;KeyValuePair&lt;String, int&gt;&gt;。我想在其中添加NameMarks。我在看this question,但没有确切的答案。

谁能告诉我如何在不使用 Linq 的情况下转换数据表。该列表可能有重复的记录,所以我正在考虑使用元组。如果可能的话,请帮我举一些例子。

【问题讨论】:

  • 为什么你不想使用 LINQ?

标签: c# list datatable


【解决方案1】:

应该这样做。 dt 当然是您的数据表的名称。您可能还想做 dr["ColName"] 而不是 dr[0] :)

    List<KeyValuePair<String, int>> test = new List<KeyValuePair<string, int>>();
    foreach (DataRow dr in dt.Rows)
    {
        test.Add(new KeyValuePair<string, int>(dr[0].ToString(), Convert.ToInt16(dr[3])));
    }

【讨论】:

  • 谢谢。你让我很开心。
【解决方案2】:

这不是我的想法,但是:

public static List<KeyValuePair<string, int>> ConvertRowsToList(DataTable input) {
  var ret = new List<KeyValuePair<string, int>>();

  foreach(DataRow dr in input.Rows)
    ret.Add(new KeyValuePair<string, int>((string)dr["Name"], (int)dr["Marks"]));

  return ret;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2011-11-19
    • 1970-01-01
    相关资源
    最近更新 更多