4

私はLinqを使用するのは初めてで、SqlMethods.Like関数を機能させることができません。

これが私の単純化された例です:

        List<string> mylist = new List<string>();
        mylist.Add("100");
        mylist.Add("101");
        mylist.Add("102");
        mylist.Add("103");
        mylist.Add("104");
        mylist.Add("105");
        mylist.Add("106");
        mylist.Add("107");

        var filtered = mylist.Where(x => SqlMethods.Like(x, "10%"));
        foreach (var record in filtered)
        {
            textBox1.Text += record + "\n";
        }

filteredという変数が空に戻ります。私は何が欠けていますか?

x.Equals( "100")を使用すると、結果が返されます。

4

4 に答える 4

8

SqlMethods.Like

特定の文字列が指定されたパターンと一致するかどうかを判別します。このメソッドは現在、LINQtoSQLクエリでのみサポートされています。

クエリはLINQtoSQLクエリではありません。

于 2012-10-09T17:45:40.977 に答える
1

あなたの場合は以下を使用してください:

var filtered = mylist.Where(x => x.Contains("10"));
于 2012-10-09T17:47:21.770 に答える
1

たとえば、Containsを使用できますか

var filtered = mylist.Where(x => x.Contains("10"));

本当にSQLLIKEが必要な場合は、System.Data.Linq.SqlClient.SqlMethods.Like(...)SQLServerでLINQ-to-SQLがマップするLIKEを使用できます。

于 2012-10-09T17:49:18.917 に答える
0

Contains operator代わりにLikeを使用できます

于 2012-10-09T17:48:00.690 に答える