public static void OnlyOneSelectAndCray(CheckBox p1, CheckBox p2, CheckBox p3, CheckBox p4)
{
OnlyOneSelectAndCray(p1, p2);
OnlyOneSelectAndCray(p3, p2);
OnlyOneSelectAndCray(p3, p1);
OnlyOneSelectAndCray(p4, p1);
OnlyOneSelectAndCray(p4, p2);
OnlyOneSelectAndCray(p4, p3);
}
public static void OnlyOneSelectAndCray(CheckBox p1, CheckBox p2, CheckBox p3, CheckBox p4, CheckBox p5)
{
OnlyOneSelectAndCray(p1, p2);
OnlyOneSelectAndCray(p3, p2);
OnlyOneSelectAndCray(p3, p1);
OnlyOneSelectAndCray(p4, p1);
OnlyOneSelectAndCray(p4, p2);
OnlyOneSelectAndCray(p4, p3);
OnlyOneSelectAndCray(p5, p1);
OnlyOneSelectAndCray(p5, p2);
OnlyOneSelectAndCray(p5, p3);
OnlyOneSelectAndCray(p5, p4);
}
每两个参数之间都执行方法OnlyOneSelectAndCray.
能写一个不限参数个数的方法吗? params CheckBox[] p1
求大神指教.
{
OnlyOneSelectAndCray(p1, p2);
OnlyOneSelectAndCray(p3, p2);
OnlyOneSelectAndCray(p3, p1);
OnlyOneSelectAndCray(p4, p1);
OnlyOneSelectAndCray(p4, p2);
OnlyOneSelectAndCray(p4, p3);
}
public static void OnlyOneSelectAndCray(CheckBox p1, CheckBox p2, CheckBox p3, CheckBox p4, CheckBox p5)
{
OnlyOneSelectAndCray(p1, p2);
OnlyOneSelectAndCray(p3, p2);
OnlyOneSelectAndCray(p3, p1);
OnlyOneSelectAndCray(p4, p1);
OnlyOneSelectAndCray(p4, p2);
OnlyOneSelectAndCray(p4, p3);
OnlyOneSelectAndCray(p5, p1);
OnlyOneSelectAndCray(p5, p2);
OnlyOneSelectAndCray(p5, p3);
OnlyOneSelectAndCray(p5, p4);
}
每两个参数之间都执行方法OnlyOneSelectAndCray.
能写一个不限参数个数的方法吗? params CheckBox[] p1
求大神指教.
{
for (int i = 0; i < p1.Length; i++)
{
for (int j = i + 1; j < p1.Length; j++)
{
OnlyOneSelectAndCray(p1[i], p1[j]);
}
}
}
{
var list = checkboxs.SelectManay(x => checkboxs.Select(y => new { x, y })).Where(x => x.x.GetHashCode() > x.y.GetHashCode()).ToList();
foreach (var item in list) OnlyOneSelectAndCray(item.x, item.y);
}
public static void OnlyOneSelectAndCray(CheckBox p1,CheckBox p2)
{
} public static void OnlyOneSelectAndCray(params CheckBox[] p1)
{
if (p1 == null || p1.Length < 2)
return; if (p1.Length == 2)
{
OnlyOneSelectAndCray(p1[0], p1[1]);
return;
} for (int i = 0; i < p1.Length; i++)
{
for (int j = i + 1; j < p1.Length; j++)
{
OnlyOneSelectAndCray(p1[i], p1[j]);
}
}
}
{
//处理CheckBox两两匹对情况
}