在字符串列表中匹配单词的第一个字符



我有一个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();

相关内容

  • 没有找到相关文章

最新更新