public Articles GetByName(string name, Categories category, Companies company)
{
var query = from article in session.Linq<Articles>()
where article.Name == name &&
article.Category == category &&
article.Company == company
select article;
return query.FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
如何查询不区分大小写.我可以使用toLower或toUpper但我想使用OrdinalIgnoreCase.可能吗?
Ada*_*kis 89
使用String.Equals
适当的参数使其不区分大小写
mySource.Where(s => String.Equals(s, "Foo", StringComparison.CurrentCultureIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
Edg*_*gar 43
相反,如果==
使用该.Equals(name, StringComparison.OrdinalIgnoreCase)
方法.
var query = from article in session.Linq<Articles>()
where article.Name.Equals(name, StringComparison.OrdinalIgnoreCase) &&
article.Category.Equals(category) &&
article.Company.Equals(company)
select article;
return query.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
Joh*_*soe 18
如果这是针对具有不区分大小写的排序规则的数据库的LINQ to SQL查询,则它已经不区分大小写.请记住,LINQ to SQL实际上并没有执行您的==调用; 它将它看作一个表达式并将其转换为SQL中的相等运算符.
如果它是LINQ to Objects,那么你可以像其他海报所指出的那样使用String.Equals.
var query = from article in session.Linq<Articles>()
where string.Equals(article.Name,name, StringComparison.OrdinalIgnoreCase) &&
string.Equals(article.Category,category, StringComparison.OrdinalIgnoreCase) &&
string.Equals(article.Company,company, StringComparison.OrdinalIgnoreCase)
select article;
return query.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
它还将处理名称,类别,公司的时间 null
用
String.Equals(article.Name, name, StringComparison.OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 C# 6.0,您可以定义在构造 LINQ 语句时使用的简短扩展方法:
public static bool EqualsInsensitive(this string str, string value) => string.Equals(str, value, StringComparison.CurrentCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
用法:
query.Where(item => item.StringProperty.EqualsInsensitive(someStringValue));
Run Code Online (Sandbox Code Playgroud)
对于小于 6.0 的 C#,它将如下所示:
public static bool EqualsInsensitive(this string str, string value)
{
return string.Equals(str, value, StringComparison.CurrentCultureIgnoreCase);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67988 次 |
最近记录: |