2010-11-18 16 views
1

外部ソースから読み込まれたデータを持つDataTableがあります。列の1つはintです。 DataTableにそのintの説明を含む列を追加したいと思います。 私は辞書を持っている、またはいくつかのケースでのようなもの:DataTableのは「STATUS_VALUE」、今mapping_values列を追加し、参照データでDataTableを更新します。

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

にint型にマップする整数が含まれてい

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

、私が欲しいですこの新しいステータステキスト列の値を で埋めるために、mapping_valuesの文字列(ここではtbl ["status_value"]は整数(この場合3または6)に一致します)を入力し、 "start"または "end"を入力します。私はここ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")]; 
関連する問題