是string.ElementAt()O(1)?

mpe*_*pen 9 c# linq string ienumerable

在评论中,

如果源类型实现IList,则该实现用于获取指定索引处的元素.否则,此方法获取指定的元素.

字符串没有实现IList<T>.这是否意味着O(n)如果我宣布这样的话,这将是一个操作,

IEnumerable<char> myString = "stringy";
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 7

ElementAt当应用于string将是O(N)操作的类型时.它没有实现IList<char>,因此ElementAt不会对它进行任何优化,而是枚举IEnumerable<char>直到达到指定的索引.

  • 字符串是如此常见!:p它仍然特别在我心中,即使linq不会认出它. (3认同)