2013-01-24 87 views
1

我有一个DataTable与4列(NameContactAddressMarks)。我想将我的DataTable转换为List<KeyValuePair<String, int>>。我想在此添加NameMarks。我正在寻找this question,但是我没有确切的答案。如何转换数据表列出<KeyValuePair <string, int>>

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

+2

*为什么*您不想使用LINQ ? –

回答

2

这应该做到这一点。 dt当然是你的数据表的名字。您可能还需要做博士[ “COLNAME”]而不是博士[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]))); 
    } 
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; 
} 
相关问题