"$0Option one$1$Option two$2$Option three"
(など)の文字列には、各数値がオプションに対応する辞書に変換したいという文字列があります。私は現在、この問題の解決策を持っていますが、このメソッドはインポートするすべてのエントリ(数千個)に対して呼び出されるので、できるだけ最適化します。正規表現を使用した辞書への文字列(最適化したい)
public Dictionary<string, int> GetSelValsDictBySelValsString(string selectableValuesString)
{
// Get all numbers in the string.
var correspondingNumbersArray = Regex.Split(selectableValuesString, @"[^\d]+").Where(x => (!String.IsNullOrWhiteSpace(x))).ToArray();
List<int> correspondingNumbers = new List<int>();
int number;
foreach (string s in correspondingNumbersArray)
{
Int32.TryParse(s, out number);
correspondingNumbers.Add(number);
}
selectableValuesString = selectableValuesString.Replace("$", "");
var selectableStringValuesArray = Regex.Split(selectableValuesString, @"[\d]+").Where(x => (!String.IsNullOrWhiteSpace(x))).ToArray();
var selectableValues = new Dictionary<string, int>();
for (int i = 0; i < selectableStringValuesArray.Count(); i++)
{
selectableValues.Add(selectableStringValuesArray.ElementAt(i), correspondingNumbers.ElementAt(i));
}
return selectableValues;
}
すべてのキーとすべての値の間に '$'記号がありますか?あなたの例では、1つの '$'が意図的に、または間違っていますか?意図的に – NOtherDev
。 $ 0オプション$ 1 $オプション$ 2 $オプション$ 3 $オプション$ 4 $オプション.....など私は整数をキーとするべきであることを認識しています(文字列が等しい場合)。 – SimonW