用其他字符串数组替换字符串数组?
问题描述:
我需要与其他阵列
的元素来取代我数组的匹配元素我写这样的代码:用其他字符串数组替换字符串数组?
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;
}
,但你可以给我这个工作更好的方法?
答
您可以定义一个从源映射到目标元素的字典。根据您发布的样本,可以使用类似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
。
你能更清楚吗?你究竟想问什么?你面对什么问题? –
输入是否只包含来自a-z的字符? –
请记住,如果您按照您的方式更改了方法中的'input'数组,您的原始数组也将被更改,因为数组是引用类型。 –