我有一个LINQ查询。我只是Linq的初学者。我想用它来自动补全。我需要将输入与字符串中单词的起始字符匹配。考虑以下场景:
String
1. London Corporation
2. Financial Services Industry
3. European Union Countries.
4. Derivative Securities
在上面的列表中,当用户按下字符'C'时,查询应该返回值1和3作为匹配字符'C'的字符串中的单词。如果输入是'S',那么结果应该是2和4。
我试过下面这个。但不知道下一步该怎么做。请任何人告诉我如何在字符串中分割单词并匹配输入字符。我尝试了下面的代码。
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();
谢谢,
您想要这样的内容:
line.Value.Split(' ').Any(x => x.StartsWith(Val))
您得到的错误是因为没有将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();