如何从字符串中提取整数值?C#处理PowerShell返回RAM值的简便方法
更简便的实现方案
共有三种不同场景下的优化写法,都比你当前的实现更简洁:
- 极简LINQ写法:仅适合返回字符串中只存在一组数字的场景
直接筛选所有数字字符拼接即可,不需要处理任何分隔符:string ramValue = new string(ramSize.Where(char.IsDigit).ToArray()); - 简化分割逻辑:保持你原有思路的优化版
一次性去掉首尾特殊符号后再分割,减少一次Split调用:string ramValue = ramSize.Trim('@', '{', '}').Split('=')[1].Trim(); - 正则匹配写法:鲁棒性最高,兼容格式轻微变动的场景
直接匹配连续数字串,即使后续PowerShell返回的格式顺序有变也能正常取值:
如果需要直接得到数值类型,可直接嵌套解析,推荐用long避免内存值超出int范围:// 需提前引用命名空间 using System.Text.RegularExpressions; string ramValue = Regex.Match(ramSize, @"\d+").Value;long ramSizeBytes = long.Parse(Regex.Match(ramSize, @"\d+").Value);
内容的提问来源于stack exchange,提问作者wisnshaftler
相关产品推荐
相关产品推荐

