我必须使用我的类创建XML结构。我的类实例中有一些重复的结构以及其他元素。如下
<MainBody>
<Leg1>
<aa>--</aa>
<bb>--</bb>
</Leg1>
<Leg2>
<aa>--</aa>
<bb>--</bb>
</Leg2>
<Leg3>
<aa>--</aa>
<bb>--</bb>
</Leg3>
</Mainbody>
为了得到这个结构,我写了像
这样的代码 foreach (var leg in LegList)
{
switch (legNum)
{
case 1:
Mainbody.Leg1 = leg;
AddConditionSwith("Leg1", true);
break;
case 2:
Mainbody.Leg2 = leg;
AddConditionSwith("Leg2", true);
break;
case 3:
Mainbody.Leg3 = leg;
AddConditionSwith("Leg3",true);
break;
}
}
有没有办法用更通用的代码替换Switch。我需要有相同的xml结构。无法改变它。因此,值和名称将会改变,但分配逻辑仍然相同。
答案 0 :(得分:0)
你至少可以像以下一样将开关拉出for循环:
Action<Leg> assigner;
string name;
switch (legNum)
{
case 1:
assigner = leg => Mainbody.Leg1 = leg;
name = "Leg1";
break;
case 2:
assigner = leg => Mainbody.Leg2 = leg;
name = "Leg2";
break;
case 3:
assigner = leg => Mainbody.Leg3 = leg;
name = "Leg3";
break;
}
foreach (var leg in LegList)
{
assigner(leg);
AddConditionSwith(name, true);
}
理想情况下,您需要更改对象模型,因此Leg1
,Leg2
和Leg3
是一组腿而不是单独的属性。你仍然可以从中生成相同的XML,它的完成方式略有不同。