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

时间:2016-10-27 14:52:39

标签: 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. 的A / C
  6. A / B
  7. 所以我现在想查询DB中所有以list中包含的任何值开头的项目。从示例1中,应返回4和6。

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

1 个答案:

答案 0 :(得分:1)

假设您使用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)));