1
我有一个HashSet<string>
使用StringComparer.CurrentCultureIgnoreCase
实例化,我正在广泛使用.Contains(字符串输入)来检查用户输入。如果用户在错误的情况下输入一个值,.Contains = true,这是正确的,但我还需要更正大小写;如果例如用户请求myvalue
和MyValue
在哈希集中,那么返回MyValue
以便用户输入经过大小写更正的最有效方法是什么?如何从散列集<string>获取正确的值?
这里是我的意思是一个粗略的代码示例:
static HashSet<string> testHS = new HashSet<string>(StringComparer.CurrentCulture);
static bool InputExists(string input, out string correctedCaseString)
{
correctedCaseString = input;
if (testHS.Contains(input))
{
// correctedCaseString = some query result of the cased testHS value?
return true;
}
return false;
}
您击败了我。 – Greg 2012-01-27 17:09:54
优雅,永远不会想到这一点。但有没有办法做到这一点,而不必改变我的对象?否则,把Linq方法放在“最好的方式”之下(也许更多/太昂贵),使用哈希集来做?编辑:似乎其他答案已经vamoosed ... – downwitch 2012-01-27 17:18:11