SortedList不工作​​区不敏感

时间:2013-12-25 21:06:23

标签: c# case-insensitive sortedlist

我正在尝试使用SortedList进行不区分大小写的字符串比较。以下是有效的:

SortedList mySL = new SortedList(new CaseInsensitiveComparer());
mySL.Add("key_1", "val_1");
mySL.Add("key_2", "val_2");
mySL.Add("key_3", "val_3");
if (mySL.ContainsKey("KEY_1"))
    MessageBox.Show("is there"); // message appears
else
    MessageBox.Show("not found");

但这不是:

public class MySL : SortedList
{
    // The only constructor
    public MySL(IComparer comparer) {}

    ...
}

MySL sl = new MySL(new CaseInsensitiveComparer());

sl.Add("key_1", "val_1");
sl.Add("key_2", "val_2");
sl.Add("key_3", "val_3");
if (sl.ContainsKey("KEY_1"))
    MessageBox.Show("is there"); 
else
    MessageBox.Show("not found"); // message appears

有人能看出什么问题吗?

1 个答案:

答案 0 :(得分:5)

您需要将比较器传递给基类构造函数:

public MySL(IComparer comparer)
    : base(comparer) { }