2013-12-12 39 views
1

这应该很容易,但我无法使其工作。Linq选择项目在列表中的位置

我有一个列表(的T)和一个LINQ到SQL查询。我想选择所有记录中查询特定的键也是在列表

找到所以我这样做:

Public Class myChekList 
    Public Property custNo As String 
    Public Property No As String 
End Class 

'''fill a list object myChkLst with items  

    Dim query = From a In db.MyTable.Where(myChkLst(Function(f) f.No).Contains(a.No)) 

但是,这是可怕的错误。有谁能够帮助我?

此致敬礼。

+1

为什么是 “可怕的错误”? –

+1

[LINQ查询示例](http://msdn.microsoft.com/en-us/vstudio/bb688084.aspx),[101 Visual Basic LINQ示例](http://msdn.microsoft.com/en-us/ vstudio/bb688088.aspx) –

+0

你并不遥远! – Ric

回答

1

未经检验的,但这样的事情:

Dim query = db.MyTable.Where(Function(f) myChkLst.Select(Function(c) c.No).Contains(f.No)) 
+0

谢谢 - 这一个工作马上! – micknt

+0

不客气。 – Ric

0

可以使用.ANY要么

Dim query = From a In db.MyTable.Where(Function(f) myChkLst.any(function(c) c.No = f.no))) 
+0

似乎OP需求'不包含'=' –

+0

@huMptyduMpty这在功能上是等价的,它只是更详细的语法。 – Servy

+0

由于看起来列表中有多个字段,它应该是select/contains或any(我认为) –