linq不区分大小写(没有toUpper或toLower)

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();
}

如何查询不区分大小写。 我可以使用toLower或toUpper,但是我想用OrdinalIgnoreCase。 可能吗?


使用String.Equals和适当的参数使其不区分大小写

mySource.Where(s => String.Equals(s, "Foo", StringComparison.CurrentCultureIgnoreCase));

相反,如果==使用.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();

如果这是对大小写不敏感的归类的数据库的LINQ to SQL查询,那么它已经是不区分大小写的。 请记住,LINQ to SQL实际上并未执行您的==调用; 它将它视为一个表达式并将其转换为SQL中的相等运算符。

如果它是对象的LINQ,那么可以像其他海报中指出的那样使用String.Equals。

链接地址: http://www.djcxy.com/p/75229.html

上一篇: linq case insensitive (without toUpper or toLower)

下一篇: How can I do a case insensitive string comparison?