C# 具有动态where子句的linq查询

C# 具有动态where子句的linq查询,c#,asp.net,vb.net,linq,c#-4.0,C#,Asp.net,Vb.net,Linq,C# 4.0,我需要使用LINQ执行类似于这样的t-sql语句的操作: SELECT * FROM mytable WHERE idnumber IN('1', '2', '3') 所以在林克我有: Dim _Values as String = "1, 2, 3" Dim _Query = (From m In mytable Where idnumber = _Values Select m).ToList() 不确定如何处理_值以使idnumber计算字符串中的每个值。 提前感谢。在此上下文中,我将

我需要使用LINQ执行类似于这样的t-sql语句的操作:

SELECT * FROM mytable WHERE idnumber IN('1', '2', '3')
所以在林克我有:

Dim _Values as String = "1, 2, 3"
Dim _Query = (From m In mytable Where idnumber = _Values Select m).ToList()
不确定如何处理_值以使idnumber计算字符串中的每个值。

提前感谢。

在此上下文中,我将选择
内部连接。如果我使用
Contains
,它将
不必要地迭代
6次
,尽管只有一个匹配项

Dim _Values as String = "1, 2, 3"
Dim _Query = (From m In mytable Where _Values.Split(", ").Contains(m.idnumber) Select m).ToList()
C版本
VB.Net版本 包含的缺点 假设我有两个列表对象

List 1      List 2
  1           12
  2            7
  3            8
  4           98
  5            9
  6           10
  7            6

使用Contains,它将搜索列表2中的每个列表1项,这意味着迭代将发生49次 在此上下文中,我将选择
内部联接。如果我使用
Contains
,它将
不必要地迭代
6次
,尽管只有一个匹配项

C版本
VB.Net版本 包含的缺点 假设我有两个列表对象

List 1      List 2
  1           12
  2            7
  3            8
  4           98
  5            9
  6           10
  7            6

使用Contains,它将搜索列表2中的每个列表1项,这意味着迭代将发生49次_值必须是数组。对,我错过了。更新了我的答案。\u值需要是一个数组。对,我错过了。更新了我的答案。你确定
Join
不会使所有迭代都成功吗?在SQL Server中,我不喜欢你使用
Cursor
你确定
Join
不会使所有迭代都这样做吗?在SQL Server中,我不希望您使用
Cursor
List 1      List 2
  1           12
  2            7
  3            8
  4           98
  5            9
  6           10
  7            6