Linq查询中,需要查询是否包含某字符。代码如下:
string strName = "CFP";
var ur = (from c in ur where c.EventName_EN.Contains(strName) select c);
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);
var ur = (from c in ur where c.EventName_EN. ToLower().Contains(strName. ToLower()) select c);
即都转换成大写或者小写后进行比较。
第二种方法如下:
public
class
MyUserComparer : IEqualityComparer<string>
{
public
bool
Equals(string
a,string
b)
{
return
a,ToLower().Equls(b.ToLower());
}
public
int
GetHashCode(string a)
{
return
a.GetHashCode();
}
}
调用代码为:
ur = (from c in ur where c.EventName_EN.Contains(strName, new MyStringCompare()) select c);
但第二种方法我一直不能编译通过。留待下次解决吧。