C#SqlMethods喜欢不起作用
我是使用Linq的新手,无法获得SqlMethods,比如函数工作 下面是我的简化示例:C#SqlMethods喜欢不起作用,c#,linq,C#,Linq,我是使用Linq的新手,无法获得SqlMethods,比如函数工作 下面是我的简化示例: List<string> mylist = new List<string>(); mylist.Add("100"); mylist.Add("101"); mylist.Add("102"); mylist.Add("103"); mylist.Add("104");
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";
}
List mylist=new List();
mylist.添加(“100”);
mylist.添加(“101”);
mylist.添加(“102”);
mylist.添加(“103”);
mylist.添加(“104”);
mylist.添加(“105”);
mylist.添加(“106”);
mylist.添加(“107”);
var filtered=mylist.Where(x=>SqlMethods.Like(x,“10%”);
foreach(过滤后的var记录)
{
textBox1.Text+=记录+“\n”;
}
我的变量filter返回为空。我错过了什么
如果我使用x.Equals(“100”),我会得到结果。
确定特定字符串是否与指定字符串匹配
图案此方法目前仅在LINQ to SQL中受支持
查询
您的查询不是LINQ to SQL查询。在您的情况下,请使用:
var filtered = mylist.Where(x => x.Contains("10"));
您可以使用
Contains操作符
而不是像一样。例如,您可以使用Contains吗
var filtered = mylist.Where(x => x.Contains("10"));
如果您真的想要SQL
LIKE
,您可以使用,在SQL Server中,LINQ to SQL映射到LIKE
。这些方法就像完全不工作一样!;)您正在执行内存内筛选。SqlMethods适用于Linq-2-Sql场景。是的。不是linq到sql。。。改用x.StartsWith。通常使用String.StartsWith/EndsWith/Contains:)是。只是为了有灵芝的味道。