2014-06-23 3 views
0

J'ai une liste de chaînes, fournie à partir d'une requête précédente. Ces chaînes sont des identifiants dans cette première table, appelons cette table1, et existent dans une autre colonne, dans une autre datatable, appelons cette table2. Je veux utiliser la liste directement dans une requête essayant d'aller chercher toutes les lignes de la table2 contenant ces identifiants dans la liste.Peut-on utiliser une liste pour trouver une collection de lignes dans une requête?

Est-ce possible? J'ai lu la fonction .Any(), même si je n'ai pas encore trouvé de solution pour l'utiliser.

Répondre

1

Vous avez besoin quelque chose comme:

List<string> firstList = .....; 
var query = dataTable2.AsEnumerable() 
       .Where(r => firstList.Contains(r.Field<string>("IdColumn"))); 
+0

Would r.'FieldName », suffisant? Étant donné que le champ en question est déjà stocké en tant que chaîne, ou est-ce que le Contains() nécessite que le lambda soit déclaré en utilisant le champ ("ColumnName")? – JSA

+0

'Champ ' parce que c'est un 'DataTable' et Field est une méthode d'extension sur' DataRow', mais si LINQ to SQL/LINQ To Entity est comme '.Where (r => firstList.Contains (r. IdColumn)) ' – Habib

+0

Ah d'accord, c'est logique. Merci beaucoup Habib. – JSA

Questions connexes