我有一个包含部分值的字符串列表,即
var list = new List<string>{"A/B", "C/D"};
在我的数据库中我有这样的记录
- A/B/X
- X/C/V/B
- G/H/J
- C/D/D/C
- 空调
- 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/