2014-06-23 116 views
0

我有一個字符串列表,從早期的查詢提供。這些字符串是第一個表中的標識符,讓我們調用這個table1,並且存在於另一個數據表中的另一列中,然後調用這個table2。我想直接在查詢中使用列表,試圖從table2中獲取包含列表中任何標識符的所有行。可以使用列表查找查詢中的行集合嗎?

這可能嗎?我一直在閱讀.Any()函數,但我還沒有想出使用它的解決方案。

回答

1

你需要的東西,如:

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

將r.'FieldName」,夠嗎?鑑於有問題的字段已經存儲爲字符串,還是Contains()要求通過使用字段(「ColumnName」)來聲明lambda表達式? – JSA

+0

'Field '因爲它是一個'DataTable',而Field是'DataRow'上的擴展方法,但是如果它LINQ到SQL/LINQ To Entity,它就像'.Where(r => firstList.Contains(r。 IdColumn))' – Habib

+0

啊好吧,這是有道理的。非常感謝哈比卜。 – JSA

相關問題