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

C#如何用单行代码提取字符串@符号前部分的最后10位字符

C# 单行实现方案

最简写法(适配C# 8.0+版本,和原有逻辑完全一致)

string ani = value.Split('@')[0][^10..];

写法说明:

  • 先用Split('@')[0]直接提取@符号之前的前缀子串,替代手动调用IndexOf+Substring的写法,逻辑更直观
  • [^10..]是C# 8.0引入的范围运算符,作用是取字符串的最后10位,等效于原有逻辑里的Substring(ani2.Length - 10)

兼容低版本C#的单行写法

如果你用的是C# 8.0之前的版本,不支持范围运算符,可以用嵌套Substring实现:

string ani = value.Substring(0, value.IndexOf("@")).Substring(value.Substring(0, value.IndexOf("@")).Length - 10);

鲁棒性优化版本(适配边界场景)

上述两种写法都默认输入一定包含@、且@之前的子串长度≥10,如果要兼容@不存在、前缀不足10位的场景,避免抛出异常,可以用如下写法:

// 前缀不足10位时直接返回整个前缀,你也可以根据需求调整返回逻辑
string ani = value.Split('@')[0] is string prefix && prefix.Length >= 10 ? prefix[^10..] : prefix;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:12:02