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

C#中是否支持类似Python的区间式字符串切片(Slicing)操作

C# 实现区间字符串切片的方法

对应Python示例中b[2:5]截取"Hello, World!"索引2到5(不含5)位置字符、得到结果llo的需求,C#根据版本不同,有两种常用实现方式:

C# 8.0 及以上版本:原生范围语法

C# 8.0 引入了和Python切片逻辑高度一致的Range范围语法,直接通过索引器就能实现同等效果,规则同样是左闭右开(截取区间包含起始索引、不包含结束索引):

string b = "Hello, World!";
Console.WriteLine(b[2..5]); 
// 输出:llo,和Python示例运行结果完全一致

常用的简写规则也和Python切片对齐:

  • 从字符串开头截取到指定结束位置前:b[..end],等价于Python的b[:end]
  • 从指定起始位置截取到字符串末尾:b[start..],等价于Python的b[start:]
  • 支持从末尾倒计数索引,用^标记:比如b[^3..]表示截取最后3个字符,等价于Python的b[-3:]

C# 8.0 以前版本:Substring 内置方法

如果是旧版本C#,可以用字符串自带的Substring方法实现同等效果。注意这个方法的参数和Range语法有区别:第一个参数是起始索引,第二个参数是截取的字符长度,不是结束位置。
对应示例的实现代码:

string b = "Hello, World!";
// 从索引2开始,截取长度为 5-2=3 的字符
Console.WriteLine(b.Substring(2, 3));
// 输出:llo

如果需要从指定起始位置一直截取到字符串末尾,只需要传入起始索引即可,比如b.Substring(2)就是从索引2位置开始截取到字符串最后。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:36:23