在Linq中搜索字符串列表时进行部分匹配
本文关键字:行部 列表 Linq 搜索 字符串 | 更新日期: 2023-09-27 18:17:08
在列表中。包含方法,如何更改以下linq查询以适应部分搜索,就像我们在sql中使用 like
AllDegrees.Listt = new List<string>();
.....
.....
.....
.....
var query = from q in query
join ce in context.CandidateEducations
on q.c.Candidate_OID equals ce.Candidate_OID
where AllDegrees.Listt.Contains(ce.Degree)
select q;
实际情况是,我在AllDegrees中有kaaal, jaaal, baaal, maaal。Listt。现在它是。Degree是ka或al或ja或aa,那一行应该包含在我的结果集中
检查这个,
private List<string> findDegreesLoop()
{
var list1 = new List<string>();
var list2 = new List<string>();
var list3 = new List<string>();
foreach (var degree in list2)
{
var matches = list1.Where(q => q.Contains(degree)).ToList();
if (matches.Any())
{
list3.AddRange(matches);
}
}
return list3;
}
private List<string> findDegreesLinq()
{
var list1 = new List<string>();
var list2 = new List<string>();
var list3 = new List<string>();
foreach (var matches in list2.Select(degree => list1.Where(q => q.Contains(degree)).ToList()).Where(matches => matches.Any()))
{
list3.AddRange(matches);
}
return list3;
}
AllDegrees.Listt.Where(x => x.Contains("your string")).Any();
不确定这是否是您正在寻找的。下面是一个实现contains (~ SQL LIKE)方法的简单示例。
context.CandidateEducations.Where(d=>d.ToLower().Trim().Contains(MyVariable.ToLower().Trim()))