我有一个DataTable
4 列 ( Name
, Contact
, Address
, Marks
)。我想将我的转换DataTable
为List<KeyValuePair<String, int>>
. 我想补充Name
一下Marks
。我在看这个问题,但我所追求的没有确切的答案。
有人可以告诉我如何在不使用 Linq 的情况下转换数据表。该列表可能有重复的记录,所以我正在考虑使用元组。如果可能的话,请帮我举一些例子。
这应该这样做。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;
}