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

本文关键字:列表 成员 包含 LINQ 字符串 | 更新日期: 2023-09-27 18:15:11

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

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

在我的DB中,我有这样的记录

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

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

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

字符串的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的一个元素开始,你可以使用stringStartWith方法来做。如果你的items集合是一个字符串列表,那么这样做:

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