解决方法
明显的解决办法是将其变成方法.
旧:
void SubmitOrders() { var orders = GetOrders(); foreach (Order o in orders) { foreach (OrderDetail d in o.Details) { // Blah... } } }
新:
void SubmitOrders() { var orders = GetOrders() foreach (Order o in orders) { SubmitOrder(o); } } void SubmitOrder(Order order) { foreach (OrderDetail d in order.Details) { // Blah... } }
这里的其他答案似乎集中在Linq上,我同意如果你的循环没有副作用(即你只是想从最内层的循环中提取一些信息),那么你可以使用一个或者多个两个简单的Linq语句.如果涉及副作用,那么只需按照经过时间考验的子程序实践.