2

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

字符串列表

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

谢谢,

4

2 回答 2

4

你想要这样的东西:

line.Value.Split(' ').Any(x => x.StartsWith(Val))
于 2013-01-07T12:46:27.953 回答
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();
于 2013-01-07T20:34:01.983 回答