C#SqlMethods就像不工作一样

时间:2012-10-09 17:42:48

标签: c# linq

我是使用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 个答案:

答案 0 :(得分:8)

SqlMethods.Like

  

确定特定字符串是否与指定字符串匹配   图案。目前仅在LINQ to SQL中支持此方法   查询。

您的查询不是LINQ to SQL查询。

答案 1 :(得分:1)

在您的情况下使用:

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

答案 2 :(得分:1)

您可以使用包含作为示例吗?

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

如果您 确实 想要SQL LIKE,您可以使用System.Data.Linq.SqlClient.SqlMethods.Like(...),LINQ-to-SQL映射到LIKE在SQL Server中。

答案 3 :(得分:0)

您可以使用Contains operator代替