c#委托的一个应用

1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < nodeCount; i++)
{
if (tunnelList[sphere.SphereSN, i] == 1)
{
tubesConnectToNode.Add(tubeList.Find(tube => tube.NodeSN1 == sphere.SphereSN && tube.NodeSN2 == i));
}
if (tunnelList[i, sphere.SphereSN] == 1)
{
tubesConnectToNode.Add(tubeList.Find(tube => tube.NodeSN1 == i && tube.NodeSN2 == sphere.SphereSN));
}
}

使用委托可以一句话完成上面代码的功能

1
tubesConnectToNode =tubeList.FindAll(delegate(InteractiveTubeVisual3D tube) { return tube.NodeSN1==sphere.SphereSN||tube.NodeSN2==sphere.SphereSN; });