2011-01-25 130 views
2

我有一個客戶id列表,custList(的字符串)。LINQ to Dataset - 相當於sql(where ... in ...)

我想對數據集使用LINQ查詢來獲取客戶表中的所有客戶,其中customerID是「我」custList(字符串)。

這在LINQ中可能嗎?我在網上搜索並沒有找到答案。我是新來的LINQ ..

感謝

+0

感謝所有爲你的速度迴應!我結束了使用︰Dim query1 = From record In ds.Tables(「Customers」)。AsEnumerable()_ Where lst.Contains(record.Field(Of String)(「custID」)) Select record – novice 2011-01-25 13:00:50

+0

You're歡迎。如果可以的話,請務必提供有用的答案並標記解決問題的答案。 – 2011-01-25 16:23:13

回答

1
var custList = new HashSet<string>() { "a", "b", "c"...}; 

from record in table.ToEnumerable() 
where custList.Contains(record.Field<string>("customerID")) 
2

在LINQ使用Contains()方法來執行這些類型的查詢。

我不知道LINQ到數據集,但在LINQ to SQL中,你可以做到以下幾點:

var statuses = new int[] {1, 2, 3}; 

var query = from p in dataContext.Products 
      where statuses.Contains(p.Id) 
      select p; 

這應該產生類似於SQL:

select * from Product p 
where p.Id in (1, 2, 3) 

(注意如何在LINQ代碼中對生成的SQL進行背對背 - 這就是爲什麼如果你很熟悉SQL,它不是很直觀,但它可以非常優雅地使用現有的.NET語言特性)

這通常也適用於string以及L2S知道的其他一些基本類型的集合,因爲它們在框架中。

0
var custList = new HashSet<int> { 10, 15, 17 }; 
CustomerSet.Where(c => custList.Contains(c.CustomerID));