如何获取GUID字符串的前5个有效字符(无需多次截取)
提取Guid中前5个非分隔符字符的一行解决方案
嘿,这个需求很好解决!要直接在一行代码里生成Guid并提取前5个不包含'-'的字符,完全不需要先把Guid存入变量再反复调用截取方法,用LINQ的链式操作就能搞定:
string targetChars = new string(Guid.NewGuid().ToString().Where(c => c != '-').Take(5).ToArray());
简单解释下这行代码的逻辑:
Guid.NewGuid().ToString()生成标准格式的Guid字符串.Where(c => c != '-')过滤掉所有的分隔符'-'.Take(5)从过滤后的字符序列中取前5个.ToArray()把字符序列转成数组,最后用new string()转成字符串
如果你偏好正则表达式的方式,也可以这样写(不过LINQ的方式更直观高效):
string targetChars = string.Concat(System.Text.RegularExpressions.Regex.Matches(Guid.NewGuid().ToString(), @"[^-]").Take(5));
这样就能一步到位得到你想要的前5个非分隔符字符啦!
内容的提问来源于stack exchange,提问作者Alan2
相关产品推荐
相关产品推荐

