2010-11-12 5 views
0

J'ai les lignes de code suivantes en C# qui obtient des données en utilisant DataTables Ceci est assez générique et m'aide avec plusieurs tables. Je souhaite changer cette instruction en une instruction LINQ générique afin que je puisse l'utiliser avec plusieurs tables LINQ également.Comment convertir les lignes suivantes en instructions LINQ génériques

Quelqu'un peut-il m'aider à comprendre cela?

+0

Copie possible de http://stackoverflow.com/questions/10855/linq-query-on-a-datatable –

Répondre

0

Je ne pense pas que vous pouvez utiliser LINQ pour rendre le code que vous avez écrit plus agréable ou plus élégant en aucune façon. Je suppose que le type de editingElement.DataContext est object, vous aurez donc besoin d'écrire la distribution de toute façon. Si vous oubliez de la coulée, votre code est tout simplement indexé accès:

var rows = (DataRowView)editingElement.DataContext; 
object obj = rows.Row[this.SelectedValuePath]; 

LINQ n'a pas de caractéristiques qui rendent l'indexation plus agréable, donc je pense que c'est le meilleur que vous pouvez obtenir. Une chose laide possible est que vous obtenez object comme résultat et vous aurez besoin de couler cela à un autre type (par exemple CustomerInfo).

Si vous utilisez LINQ depuis le début (pour remplir les données pour le DataContext), vous pourriez probablement écrire quelque chose comme ceci pour accéder au client:

var rows = (IEnumerable<CustomerInfo>)editingElement.DataContext; 
CustomerInfo info = rows.Row[this.SelectedValuePath]; 

Ce serait un peu plus élégant, parce que vous auriez besoin d'un seul casting. Cependant, je pense que votre code est bien et LINQ ne peut pas vous aider (dans ce morceau de code).

Questions connexes