C#怎么根据条件选择运行的程序段,求解,多谢
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相互之间可能存在相等的情况,所以调整一下,用字典主键来对应执行方法。
------解决思路----------------------
这个abc有标志位吗?如果有的话,排序,然后按照标志位依次反射调用对应方法即可
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有标志位吗?如果有的话,排序,然后按照标志位依次反射调用对应方法即可