c# - 字符串的 LINQ 部分包含在列表成员中

标签 c# linq

我有一个包含部分值的字符串列表,即

var list = new List<string>{"A/B", "C/D"};

在我的数据库中我有这样的记录

  1. A/B/X
  2. X/C/V/B
  3. G/H/J
  4. C/D/D/C
  5. 空调
  6. A/B

所以我现在想查询数据库中以 list 中包含的任何值开头的所有项目。 。从示例 1、4 和 6 中应该返回。

我有其他逻辑正在做同样的事情,但方式不同,所以我可以像.Where(x => list.Contains(x))这样查询,但无法弄清楚如何使用 LINQ 选择以列表中包含的项目开头的值。

最佳答案

假设您使用 EF 从数据库获取数据,您可以执行以下操作:

var list = new List<string>{"A/B", "C/D"};
var query= context.YourDbSet.Where(e=>list.Any(a=>e.Column.StartWith(a)));// Column is a property of type string.

无论如何,这里的主要思想是检查您的项目是否以 list 的元素之一开头。 ,您可以使用 StartWith 来做到这一点方法string 。如果您items集合是一个字符串列表,然后执行以下操作:

var query= items.Where(e=>list.Any(a=>e.StartWith(a)));

关于c# - 字符串的 LINQ 部分包含在列表成员中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40287818/

相关文章:

c# - 如何将复选框双向绑定(bind)到标志枚举的单个位?

c# - 将变量注入(inject) Mono.CSharp.Evaluator(运行时从字符串编译 LINQ 查询)

c# - LINQ to Entities 中的批量删除

c# - Linq 获取指定的 child 和他们的 parent

c# - 在 LINQ 中嵌套 'froms'

c# - 返回类型为数据表或列表 - c#

c# - 如何计算.NET 应用程序中的并发线程数?

c# - 如何阅读在 asp.net 核心 web api 中发布的 FormUrlEncodedContent?

c# - 按子句分组与 Distinct()

c# - 分号输出问题