如何将DataTable转换为List <keyvaluepair <string,int =“”>&gt; </keyvaluepair <string,>

时间:2013-01-24 07:03:47

标签: c# list datatable

我有一个DataTable,其中有4列(NameContactAddressMarks)。我想将DataTable转换为List<KeyValuePair<String, int>>。我想在其中添加NameMarks。我在看this question,但对我所追求的事情没有确切的答案。

有人可以告诉我如何在不使用Linq的情况下转换数据表。 List可能有重复的记录,所以我想使用Tuple。如果有可能,那么请帮我一些例子。

2 个答案:

答案 0 :(得分:3)

这应该这样做。 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])));
    }

答案 1 :(得分:0)

这不是我的想法,但是:

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;
}