c# - LINQ中字符串字段的IN sql运算符的替代方法是什么?
问题描述
请在下面找到我想要实现的示例。
List<string> list = new List<string>() { "Test", "Test1", "Test2","Test","Test1" };
SQL = select * from table_name
where column_name IN ("Test","Test1");<br/>
output = { "Test","Test1","Test","Test1"}
LINQ= from x in list where list.Contains("Test","Test1") select x
output = { "Test", "Test1", "Test2","Test","Test1" }
包含 不进行完全匹配。
我们如何在 LINQ 中使用字符串列表获得与 SQL IN 运算符相同的输出?
谢谢
解决方案
您使用 Contains 不正确(实际上,您的示例代码无法编译)。相反,声明一个您希望匹配的集合并在该集合上使用 Contains ,如下所示:
List<string> list = new List<string>() { "Test", "Test1", "Test2","Test","Test1" };
var match = new HashSet<string>() { "Test", "Test1" };
var result = from x in list where match.Contains(x) select x;
结果:
Test
Test1
Test
Test1
推荐阅读
- python - Tensorflow GPU 测试代码给出错误消息,但 tensorflow 可以插入
- .net - 为什么从 dot.net 调用时打开另一个工作簿的 VBA 宏不起作用
- c# - 在控制台应用程序中使用反射动态创建和调用类
- python - TF-梯度问题
- jquery - 单击获取 data-id 查找行进父 ID 并显示无
- angular - 我将 geofirestore 与 firestore 一起使用,并希望对结果进行分页
- php - 如何在 Google Calendar API PHP 中每 2 天/周/月/年创建一次重复事件
- xcode - Xcode 的“分支”master 是一个不正确的项目
- azure - 来宾用户使用 Azure AD 登录我的应用程序
- php - 如何在特定条件下在表格上添加特定的编辑按钮?