如何将 DataTable 转换为 List>.

本文关键字:KeyValuePair string int List DataTable 转换 | 更新日期: 2023-09-27 17:55:29

我有一个有 4 列(NameContactAddressMarks)的DataTable)。我想将我的DataTable转换为List<KeyValuePair<String, int>>。我想在其中补充NameMarks。我一直在看这个问题,但对于我所追求的没有确切的答案。

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

如何将 DataTable 转换为 List<KeyValuePair<string, int>>.

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

这超出了我的头脑,但是:

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