如果我有一个字符串数组,我想创建一个将数组作为输入的“通用”转换器,以及一个“映射配置”,并根据映射配置生成另一个字符串数组,我该怎么做这样做?
例如,
输入:["hello", "world", "to", "all", "junk"]
映射器配置:
- 连接 hello + world(即组合位置 0 和 1)
- 连接到 + 所有(即组合位置 2 和 3)
- 丢弃垃圾(即删除位置 4)
输出:["hello world", "to all"]
你可以试试这样的方法:
string[] Transform(string[] inputs, Transformation[] transformations)
每个转换都可以有一个源、一个操作和一个目标。对于您的示例,转换数据可能如下所示:
[
{
Source: 0,
Operation: “SetDestination”,
Destination: 0
},
{
Source: 1,
Operation: “ConcatenateDestinationSpaceSource”,
Destination: 0
},
{
Source: 2,
Operation: “SetDestination”,
Destination: 1
},
{
Source: 3,
Operation: “ConcatenateDestinationSpaceSource”,
Destination: 1
}
]
该方法的伪代码如下所示:
foreach(transformation in transformations)
{
switch(transformation.Operation)
{
case SetDestination:
output[transformation.Destination] = input[transformation.Source];
break;
case ConcatenateDestinationSpaceSource:
output[transformation.Destination] = output[transformation.Destination] + “ “ + input[transformation.Source];
break;
}
}
“垃圾”不需要任何操作,因为它永远不会被放置在输出中。
根据任何其他操作和您选择的数据结构,输出可能需要随时调整大小。这也假设映射配置应按给定顺序应用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句