当前位置: 代码迷 >> C# >> C#怎么根据条件选择运行的程序段,求解,多谢
  详细解决方案

C#怎么根据条件选择运行的程序段,求解,多谢

热度:228   发布时间:2016-05-05 02:56:44.0
C#如何根据条件选择运行的程序段,急求解,谢谢!
void main()
{

int a b c ;
如果: a>=b>=c;  则运行程序段的顺序为 procA、procB、procC;
如果: a>=c>=b;  则运行程序段的顺序为 procA、procC、procB;
如果: b>=a>=c;  则运行程序段的顺序为 procB、procA、procC;
如果: b>=c>=a;  则运行程序段的顺序为 procB、procC、procA;
如果: c>=a>=b;  则运行程序段的顺序为 procC、procA、procB;
如果: c>=b>=a;  则运行程序段的顺序为 procC、procB、procA;

procA
{

}

procB
{

}

procC
{

}


}

如何实现?
------解决思路----------------------
上面给的代码因为你a、b、c相互之间可能存在相等的情况,所以调整一下,用字典主键来对应执行方法。

Dictionary<int, int> dic = new Dictionary<int, int>() { { 1, a }, { 2, b }, { 3, c } };
dic.OrderByDescending(p => p.Value).Select(p => p.Key).ToList().ForEach(p =>
{
switch (p)
{
case 1: procA();break;
case 2: procB();break;
case 3: procC();break;
default: break;
}
});

------解决思路----------------------
这个abc有标志位吗?如果有的话,排序,然后按照标志位依次反射调用对应方法即可
  相关解决方案