我需要用其他数组的元素替换我的数组的匹配元素 我写这段代码:
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;
}
但是你可以给我更好的方法吗?
答案 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
。