我正在查看是否将$m=New MongoClient('mongodb+srv://username:password@cluster0-woior.mongodb.net/test');
echo "test";
放在列表中的.ToList()
上,如果IEnumerable
已经是{{1 }}。
我的目标是查看源代码。这就是问题隧道的起点。首先,我发现问题Where can I view LINQ source code? [closed]导致了DOTNet的完整框架版本,但深入研究代码仅显示了一个小的Enumerable类Enumerable。
问题
以下扩展方法的源代码在哪里?
Object
子问题1完整框架版本在哪里?
子问题2 .net核心版本在哪里?
答案 0 :(得分:7)
问题1完整框架版本在哪里?
https://github.com/microsoft/referencesource/blob/master/System.Core/System/Linq/Enumerable.cs#L947
问题2 .net核心版本在哪里?
上面是两个ToList
实现的链接(还有其他实现)。
它们涵盖.NET Framework和.NET Core。
我要在哪里查看是否将.ToList()放在IEnumerable上 如果列表可能会或可能不会成为列表,则会导致性能下降 对象已经是一个列表。
肯定会按照the docs创建一个新列表:
从IEnumerable创建列表。
您还可以通过在ToList
上调用List<int>
来自己进行测试。然后更改新的List<int>
。 原始List<int>
未被更改-因此它必须创建了一个新的List<int>
。
答案 1 :(得分:3)
https://source.dot.net/是.dot net(.net核心)源代码的出色在线工具。
ToList<T>()
的源代码取决于类型。参见https://source.dot.net/#q=Linq%20ToList