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

C#中[..h]语法的运算符解析及相关学习资料推荐

C#中[..h]语法的运算符解析及相关学习资料推荐

嗨,我来帮你拆解这个你没见过的语法~

你代码里的[..h]是C# 10及以后版本才有的语法,它其实是集合表达式结合展开运算符(也就是那个..)的用法,和你可能想到的范围运算符不是一回事,我给你详细说:

  • 语法本质:[..h]的作用是把h这个实现了IEnumerable<T>的对象(这里是HashSet<int>)的所有元素展开,直接创建出一个包含这些元素的新int[]数组。放在你的代码里,WriteArray([..h]);完全等价于WriteArray(h.ToArray());,但写法更简洁直观。

  • 和范围运算符的区别:别把这个..和用来截取数组/集合子集的范围运算符搞混哦:

    • 范围运算符的用法是数组[起始索引..结束索引],比如a[1..4]是取数组a中第1到第3个元素(左闭右开规则),用来获取集合的一部分;
    • 而你这里的..h是在集合表达式的方括号里,作用是把整个可枚举对象的元素“平铺”到新集合里,是用来快速转换集合类型的。
  • 学习资料推荐:想要深入学习的话,可以重点看这些官方内容方向:

    • C#官方文档里的集合表达式章节,里面会详细讲解展开运算符的各种用法,包括展开不同类型的可枚举对象、和其他元素组合使用(比如[1, ..h, 10]这种混合写法);
    • C# 10版本特性说明,集合表达式是C# 10的核心新特性之一,这里会讲清楚这个语法的设计背景和适用场景;
    • 官方的范围和索引章节,这里会明确区分范围运算符和集合表达式里的展开运算符,帮你理清两种..用法的差异。

备注:内容来源于stack exchange,提问作者user23569772

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:28:11