2010-11-18 74 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")];