You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中[..collection]运算符的含义及使用方法咨询

C# [..collection] 运算符用法说明

[..collection] 是C# 8.0引入的范围语法的简写形式,核心作用是快速获取目标集合的完整浅拷贝,等价于写 collection[0..^0](其中0代表集合起始索引,^0代表从集合末尾开始偏移0的位置,即覆盖整个集合的范围)。

核心用法与场景

  • 快速复制集合
    对于数组、List<T>、Span<T>等实现了索引器或IEnumerable<T>的类型,用这个语法可以一行完成浅拷贝:

    var original = new int[] { 1, 2, 3 };
    var copy = original[..];
    
    // 修改拷贝后的元素不会影响原集合(值类型场景)
    copy[0] = 99;
    Console.WriteLine(original[0]); // 输出 1
    
  • 配合部分范围语法使用
    它可以和其他范围语法组合,灵活截取集合的不同部分:

    var numbers = new[] { 10, 20, 30, 40, 50 };
    var allItems = numbers[..];       // 获取全部元素:{10,20,30,40,50}
    var firstTwo = numbers[..2];      // 获取前2个元素:{10,20}
    var lastThree = numbers[^3..];    // 获取最后3个元素:{30,40,50}
    var middleRange = numbers[1..^1]; // 获取中间部分(排除首尾):{20,30,40}
    

注意事项

  • 浅拷贝特性:如果集合中的元素是引用类型,拷贝后的集合与原集合会指向同一个对象实例。修改对象的属性会同时影响两个集合,仅集合本身的结构(比如添加/删除元素)是独立的。
  • 版本要求:必须使用C# 8.0或更高版本,需要在项目设置中确认语言版本配置。
  • 适用类型:支持所有内置的可索引集合,自定义集合需要实现对应的索引器或IEnumerable<T>才能使用该语法。

内容的提问来源于stack exchange,提问作者cughudson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:18:17