C# 具有动态where子句的linq查询
我需要使用LINQ执行类似于这样的t-sql语句的操作: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计算字符串中的每个值。 提前感谢。在此上下文中,我将
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