首页 文章

将字符串列表中单词的第一个字符与Linq匹配

提问于
浏览
2

我有一个LINQ查询 . 我只是Linq的初学者 . 我想用它来自动完成 . 我需要将输入与字符串中单词的起始字符进行匹配 . 考虑一下场景 .

List of String

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();

谢谢,

2 回答

  • 1

    你想要这样的东西:

    line.Value.Split(' ').Any(x => x.StartsWith(Val))
    
  • 4

    您得到的错误是因为没有将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();
    

相关问题