gpt4 book ai didi

c# - 字符串中间的 GetEnumerator()

转载 作者:太空狗 更新时间:2023-10-30 00:04:45 27 4
gpt4 key购买 nike

假设我有一个非常 长的字符串,并且想要获取一个从字符串中间的给定索引处开始的枚举器(为了 LINQ 的优点)。也就是说,

var longString = GetLongString();
var index = 99999;

// seems unnecessarily expensive to allocate a new string
var enumerator = longString.Substring(9999).GetEnumerator();

// Use LINQ.
enumerator.TakeWhile( /* ... */ );

是否有更好(即:更便宜/更快)的方法来做到这一点?

最佳答案

考虑 Enumerable.Skip :

longString.Skip(9999).TakeWhile( /* ... */ );

但是,请记住,作为 Michael Liu写道,Skip 以迭代方式工作(严格来说它取决于实现,但至少这是你通常拥有的,参见例如 .NET Framework 4.6 Reference Sources )。如果它导致您的情况可测量1 缓慢,请查看 Michael 的扩展方法。


  1. D.Knuth : "过早的优化是万恶之源 "

关于c# - 字符串中间的 GetEnumerator(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com