我想计算System.Collections.Generic.LinkedList中起始节点和结束节点之间的节点总数,类似于C++中的STL算法std :: count(除了我打算将末端节点包含在计数).
我无法弄清楚如何使用任何LINQ扩展方法来有效地计算这个数字,所以我已经实现了这样的计数器(不包括所有空值和一致性检查):
var counter = 1;
var node = iStartNode;
while (!ReferenceEquals(node, iEndNode))
{
node = node.Next;
++counter;
}
Run Code Online (Sandbox Code Playgroud)
但必须有一个更有效的解决方案,一定不是吗?任何建议都非常感谢.
我相信您的解决方案是最有效的,也是最具可读性的.即使你能在LINQ中找到一个实现,它肯定会是曲折的.
通过排除null检查,我认为你的意思是真正的代码不会node在列表末尾运行时抛出.
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |