我有一个LINQ查询。我只是Linq的初学者。我想用它来自动完成。我需要将输入与字符串中单词的起始字符进行匹配。考虑一下情景。
字符串列表
1. London Corporation
2. Financial Services Industry
3. European Union Countries.
4. Derivative Securities
在上面的列表中,当用户按下字符“C”时,查询应该在字符串中将值1和3作为匹配字符“C”返回。如果输入为'S',则结果应为2和4。
我试过下面的一个。但不知道我怎么能继续下去。请有人告诉我如何在字符串中拆分单词并匹配输入字符。我尝试了下面的代码。
CODE
var model = (from line in db.BibContents
where line.TagNo == "020" && line.Sfld == "a" && line.Value.Split(' ').StartsWith(Val)
select new PoDetails
{
BibId = line.BibId
}).ToList();
谢谢,
答案 0 :(得分:4)
你想要这样的东西:
line.Value.Split(' ').Any(x => x.StartsWith(Val))
答案 1 :(得分:1)
您得到的错误是因为没有将c#Split()
方法转换为SQL语法。
在您的情况下,您只需检查该行是以<Val>
开头还是包含' ' + <Val>
:
var model = (from line in db.BibContents
where line.TagNo == "020" && line.Sfld == "a" &&
(line.IndexOf(Val) == 0 || line.IndexOf(' ' + Val) != -1)
select new PoDetails
{
BibId = line.BibId
}).ToList();