LINQ中的部分字符串匹配
考虑下面的SQL语句-LINQ中的部分字符串匹配,linq,c#-4.0,Linq,C# 4.0,考虑下面的SQL语句- SELECT * FROM Customers WHERE FirstName LIKE '%IS%' 这将搜索名字中包含“是”的客户,对吗 我喜欢同样的说法在林克- var names = from cust in customers where cust.FirstName ...... 我无法具体说明这种情况。 有人能帮我解决这个问题吗 感谢分享您的时间和智慧。大多数LINQ->SQL转换器将从c#中获取一些常规方法,并将它们转换为SQL。Contains是一种
SELECT * FROM Customers WHERE FirstName LIKE '%IS%'
这将搜索名字中包含“是”的客户,对吗
我喜欢同样的说法在林克-
var names = from cust in customers where cust.FirstName ......
我无法具体说明这种情况。
有人能帮我解决这个问题吗
感谢分享您的时间和智慧。大多数LINQ->SQL转换器将从c#中获取一些常规方法,并将它们转换为SQL。Contains是一种非常常用的翻译方法,可与linq2sql和EF一起使用
var names = from cust in customers
where cust.FirstName.Contains("IS")
select cust;
编辑:(不区分大小写)
试试这个:
var names = from cust in customers where cust.FirstName.Contains("IS")
对于INSTIVE
包含的大小写
,您可以将字符串转换为相同大小写(小写或大写),或者如果可以使用
虽然这种方法的性能增益可以忽略不计,但它将确保进行适当的不区分大小写的比较。使用
StringComparison
enum进行不区分大小写的字符串比较始终是一种很好的做法。您可能会看到:@IrfanRaza您使用的是什么ORM?Luke它工作正常,我发现搜索区分大小写。谢谢你,伙计@IrfanRaza是的,这将进行精确的字符匹配,您可以通过以下方式进行不区分大小写(参见编辑)谢谢Jen,您的答案与Luke相同。没问题:)Lukes anwser更准确,因此您应该将其标记为正确的anwser。
var names = from cust in customers where cust.FirstName.Contains("IS")
var names = from cust in customers
where cust.FirstName.IndexOf("IS",StringComparison.InvariantCultureIgnoreCase) >= 0
select cust;