用其他字符串数组替换字符串数组?

时间:2017-02-18 12:25:18

标签: c# arrays csv

我需要用其他数组的元素替换我的数组的匹配元素 我写这段代码:

    string[] replace(string[] input)
    {
        for (int i = 0; i < input.Length; i++)
        {
            switch (input[i])
            {
                case "a":
                    input[i] = "11";
                    break;
                case "b":
                    input[i] = "22";
                    break;
                case "c":
                    input[i] = "33";
                    break;
                default:
                    input[i] = "??";
                    break;
            }
        }
            return input;
    }

但是你可以给我更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以定义从源元素到目标元素的字典。根据您发布的示例,可以使用类似Dictionary <string, string> mappingsDictionary;的内容。

为了定义映射,您可以添加由原始元素和字符串组成的适当对,以在结果数组中替换它,例如mappingsDictionary.Add ("a", "11");

然后,使用它的一种方法是调用var resultArray = myOriginalArray.Select(i => { string s; return mappingsDictionary.TryGetValue(i, out s) ? s : i; }).ToArray ();

如果输入和输出数组中的元素都是字符串,您还可以使用StringDictionary