哪个标准范围适用于C#8中的数组和字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个标准范围适用于C#8中的数组和字符串?相关的知识,希望对你有一定的参考价值。

我正在浏览C#8范围,无法理解Range的应用是如何仅限于数组和字符串。

我以为这与接口数组实现有关。它实现了ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable, IList<T>, ICollection<T>, IEnumerable<T>, IReadOnlyList<T>, IReadOnlyCollection<T>,但是当我将new int[0]强制转换为其中任何一个并尝试在其上使用范围时,就会出现编译错误(无法应用索引或无法从索引转换为int)。

是以某种方式硬编码为仅与数组和字符串一起使用,还是我错过了某些事情?

答案

仅最初支持Count(或Length)和Item[int index]属性的类型可以支持Item[Index index]Item[Range range]。这包括数组,List,字符串,Span

对于那些不支持按索引访问项目的类型,合理的是它们不支持索引和范围。

以上是关于哪个标准范围适用于C#8中的数组和字符串?的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn joblib 错误:多处理池 self.value 超出“i”格式代码的范围,仅适用于大型 numpy 数组

无法弄清楚为啥我的字符、字数和行数适用于文件输入,但不适用于标准输入

Outlook收件人根据条件键入

字符编码常识

计数排序算法

如何使用范围中的随机值填充数组? (重复没问题。)