1

似乎 WinRT 版本的 .NET 中的字符串类没有实现 IEnumerable。我想知道他们到底为什么要这样做?

4

1 回答 1

5

你的“为什么?” 由大卫基恩在此答案下方的评论回答:

我们删除字符串上的方法背后的原因不是因为 WinRT,而是因为我们选择了这个机会来删除我们一开始就后悔添加的方法,或者限制了我们围绕未来创新的计划。

String.GetEnumerator 落入“如果我们重新开始我们不会添加它”的桶中。在 .NET Framework 中,它返回 CharEnumerator,这对于迭代字符串非常低效(它会导致为每个循环分配),并且 C# 和 VB 的 foreach 代码自 1.0 天以来就没有使用过这种类型。(他们现在将字符串上的 foreach 转换为使用字符串索引器的有效“for 循环”)。虽然有些删除可能看起来是任意的,但每次删除都是经过深思熟虑的选择,并且属于上述类别之一。

于 2013-05-08T12:16:26.117 回答