c#4.0-LINQ中的部分字符串匹配



考虑以下SQL语句-

SELECT * FROM Customers WHERE FirstName LIKE '%IS%'

这将搜索名字中包含"is"的客户,对吧?

我喜欢LINQ-中的相同语句

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.ToLower().Contains("is")
            select cust;

对于不区分大小写的contains,如果可以使用string.IndexOf Method(string,StringComparison),则可以将字符串转换为相同的大小写(小写或大写),或者效果更好

var names = from cust in customers 
            where cust.FirstName.IndexOf("IS",StringComparison.InvariantCultureIgnoreCase) >= 0
            select cust;

尽管这种方法的性能增益可以忽略不计,但它将确保进行适当的大小写不敏感的比较。使用StringComparison枚举进行不区分大小写的字符串比较总是一种很好的做法。你可以看到:土耳其问题和为什么你应该关心

试试这个:

var names = from cust in customers where cust.FirstName.Contains("IS")

相关内容

  • 没有找到相关文章

最新更新