Linq的Contains如何不区分大小写(转载)

Linq查询中,需要查询是否包含某字符。代码如下:

string strName = "CFP";
var ur = (from c in ur where c.EventName_EN.Contains(strName) select c);

运行之后,发现,LINQ本身是区分大小写的。如何让查询时不区分大小写呢?
有两种方法:
第一种如下:

string strName = "CFP";
var ur = (from c in ur where c.EventName_EN.ToLower().Contains(strName.ToLower()) select c);

即都转换成大写或者小写后进行比较。

第二种方法如下:

publicclassMyUserComparer : IEqualityComparer<string>
{
publicboolEquals(stringa,stringb)
{
 returna,ToLower().Equls(b.ToLower());
}
 
publicintGetHashCode(string a)
{
  returna.GetHashCode();
}
}

调用代码为:

ur = (from c in ur where c.EventName_EN.Contains(strName, new MyStringCompare()) select c);

但第二种方法我一直不能编译通过。留待下次解决吧。

历史上的今天:

 
posted @ 2012-10-19 17:49  David Shu  阅读(4620)  评论(0)    收藏  举报