我有一个包含部分值的字符串列表,即
var list = new List<string>{"A/B", "C/D"};
在我的数据库中,我有
等记录所以我现在想查询DB中所有以list
中包含的任何值开头的项目。从示例1中,应返回4和6。
我有其他逻辑做同样的事情,但反过来,所以我可以像.Where(x => list.Contains(x))
一样查询,但无法弄清楚如何使用LINQ选择以列表中包含的项目开头的值
答案 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)));