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