2010-11-18 47 views
1

我有一个DataTable,其中的数据是从外部源加载的,其中一列是int。 我想向DataTable添加一列,其中包含该int的描述。 我有一个解释,或在某些情况下是这样的:添加列并用查找数据更新数据表

Pair<int,string> mapping_values[] = { 
    new Pair<String, int>("start", 3), 
    new Pair<String, int>("end", 6), 
    ... etc. 
}; 

DataTable中包含“STATUS_VALUE”,它映射到INT在mapping_values

DataTable tbl = ...; 
tbl.Columns.add("Status Text",typeof(string)); 

现在一个整数,我想以 填充来自mapping_values的字符串,其中tbl [“status_value”]与整数(本例中为3或6)匹配并填写“开始”或“结束”。 linq能帮助我,还是其他的东西?

回答

1

您需要手动填充循环中的列。

要做到这一点,你应该把你的映射放在字典中。

例如:

var mapping = mapping_values.ToDictionary(p => p.Value1, p => p.Value2); 
foreach(DataRow row in table.Rows) 
    row["Status Text"] = mapping[row.Field<int>("Status Value")]; 
相关问题