小编Sim*_*onW的帖子

使用正则表达式将字符串转换为字典(希望进行优化)

我在"$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;
}
Run Code Online (Sandbox Code Playgroud)

.net c# regex optimization dictionary

3
推荐指数
1
解决办法
2593
查看次数

标签 统计

.net ×1

c# ×1

dictionary ×1

optimization ×1

regex ×1