Pol*_*zer 1 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");
Run Code Online (Sandbox Code Playgroud)
但这不是:
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
Run Code Online (Sandbox Code Playgroud)
有人能看出什么问题吗?
您需要将比较器传递给基类构造函数:
public MySL(IComparer comparer)
: base(comparer) { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |