2010-11-18 8 views
1

J'ai un DataTable avec des données chargées à partir d'une source externe, l'une des colonnes est un int. Je voudrais ajouter une colonne au DataTable, contenant une description de cet int. J'ai un dictionnaire, ou dans certains cas, quelque chose comme:Ajouter une colonne et mettre à jour un DataTable avec des données de recherche

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

Le DataTable contient un « status_value », un entier qui associe à l'int dans mapping_values

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

Maintenant, je voudrais pour remplir les valeurs de cette nouvelle colonne Statut avec la chaîne de mapping_values ​​où tbl ["status_value"] correspond à l'entier (3 ou 6 dans ce cas) et remplir "start" ou "end". Linq peut-il m'aider ici, ou autre chose?

Répondre

1

Vous devrez remplir manuellement la colonne dans une boucle.

Pour ce faire, vous devriez mettre votre cartographie dans un dictionnaire.

Par exemple:

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")]; 
Questions connexes