在列表中查找单词存在的项目并忽略特殊字符

时间:2015-04-01 14:25:33

标签: c# string linq list

我有MyItems列表:

My item 
{
   string name;
   int age; 
} 

List<MyItem> list = new List<MyItem>();
list.Add(new Test("name", 2));
list.Add(new Test("ŚćĄa", 4));
list.Add(new Test("May NĄmĄa bb" , 7));
list.Add(new Test("May maa cc" , 7));

现在用:

var NewList = list.Where(m => m.name.ToLower().Contains(textToSearch.ToLower())).ToList();

我可以忽略大小写,但是如何忽略像ĄĆŚ这样的特殊字符, 当我设置textToSearch = "aa";时  我得到第二,第三和第四项。

但是当我设置textToSearch = "ĄA";时,我只想获得第二项和第四项

1 个答案:

答案 0 :(得分:3)

试试这个:

list.Where(m => 
    CultureInfo.InvariantCulture.CompareInfo.IndexOf(
        m.name, 
        textToSearch, 
        CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) > -1
).ToList();

将列出两个,三个和四个。