2

LINQクエリが1つあります。私は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

Split()エラーが発生するのは、C#メソッドが 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 に答える