编辑:文化这些内部操作表明不变文化 OrdinalIgnoreCase是最合适的.
KeyValuePair是密封的.如果我有var a = KeyValuePair<string,int>("foo",1)并且var b = KeyValuePair<string,int>("FOO",2)我比较a.Key == b.Key我会得到假.
我想成真.首先,我将KeyValuePairs包装在一个自定义类中:
public class MyKeyValuePair
{
private KeyValuePair<string, int> myKeyValuePair;
public SyncItem(string Key, int Value)
{
myKeyValuePair = new KeyValuePair<string, int>(Key, Value);
}
public string Key { get { return myKeyValuePair.Key; } }
public int Value { get { return myKeyValuePair.Value; } }
}
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是我可以.ToLower()在Key上添加构造函数.
有没有更好的方法呢?有正确的方法吗?我应该考虑哪些因素?
您可以使用String.Equals Method(String,StringComparison)而不是==运算符,而不是将其转换为小写.(因为你的密钥是字符串类型)
a.Key.Equals(b.Key, StringComparison.CurrentCultureIgnoreCase)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1312 次 |
| 最近记录: |