【发布时间】:2011-05-06 14:17:56
【问题描述】:
您好,如果类型为“DtContract”,我有一个数组列表。
ArrayList listOfContracts_;
foreach (DTContract contract in listOfContracts_)
{
if (contract.Engine != DTIsland.EngineType.AMADEUS && contract.Engine !=DTIsland.EngineType.SABRE)
continue;
}
我想通过 LINQ 来实现。
我想过滤其EngineType == AMADEUS && EngineType == SABRE 的合约。请建议我如何通过 Linq 完成并在列表或数组列表中获取结果。
我这样做是为了优化代码。
请帮忙...
【问题讨论】:
-
您想优化速度还是提高可读性?因为将此
foreach循环转换为Linq 查询不会提高速度。 -
@Elian : 那么我该如何改进呢?请建议..
-
您的代码中缺少构造函数调用和
listOfContracts_.add(contract)。 Elian ment 是什么,linq 将在内部执行与您当前所做的相同的操作,并且从性能的角度来看,没有什么可优化的)。 -
@Nappy:实际上这只是一个例子,所以我不写 listOfContracts_.add(contract)
标签: linq lambda linq-to-entities linq-to-objects