LINQ中的类条件
我对LINQ比较陌生,不知道如何处理类似的情况。我有一个myObject的IEnumerable列表,想做一些类似myObject.Description的事情,比如“Help%”。我怎样才能做到这一点?谢谢您可以使用,或者根据您要检查的位置:LINQ中的类条件,linq,sql-like,Linq,Sql Like,我对LINQ比较陌生,不知道如何处理类似的情况。我有一个myObject的IEnumerable列表,想做一些类似myObject.Description的事情,比如“Help%”。我怎样才能做到这一点?谢谢您可以使用,或者根据您要检查的位置: var result = from o in myCollection where o.Description.StartsWith("Help") select o; 您可以选择传递StringCo
var result = from o in myCollection
where o.Description.StartsWith("Help")
select o;
您可以选择传递StringComparison以指定是否忽略大小写(对于StartsWith
和EndsWith
),这将使操作更像SQL查询:
var result =
from o in myCollection
where o.Description
.StartsWith("Help", StringComparison.InvariantCultureIgnoreCase))
select o;
如果要执行不区分大小写的包含操作,则需要改用:
您通常使用与查询外部使用的语法完全相同的语法
myObject.Description.StartsWith("Help")
这是否真正起作用取决于您在哪里使用LINQ(它可以作为代码运行,在这种情况下一切都可以运行,或者转换为其他类似的东西,例如SQL,这可能有局限性),但是它总是值得一试。请看这里:
片段:
StartsWith
和包含
:
var query = from c in ctx.Customers
where c.City.StartsWith("L") && c.City.Contains("n")
select c;
如果您应该将其与LINQ to SQL一起使用(不与LINQ to对象一起使用):
自定义LIKE
(System.Data.Linq.SqlClient.SqlMethods.LIKE
):
您可以使用string.StartsWith或string.EndsWith或string.Contains字符串属性将其用作Like运算符
StartWith将适用于类似“A%”的应用程序
Endswith将在类似“%A”的情况下工作
Contains将像“%A%”一样工作
可能重复@All…。感谢您的评论和回答。非常有用和有用的……
StartsWith
和friends还允许您指定比较类型。
var query = from c in ctx.Customers
where c.City.StartsWith("L") && c.City.Contains("n")
select c;
var query = from c in ctx.Customers
where SqlMethods.Like(c.City, "L_n%")
select c;