我要从文件路径中截取一段指定的路径
我需要截取到UI后面的这段路径,提供高效的解决方案
通过sbstring进行截取,但是效果不是很理想,要是部署在其他的电脑路径地址又不一样了,字符串数量也不一样。
我要从文件路径中截取一段指定的路径
UI是固定的吗?
2022年,我们也可以这么写
var path = @"D:\\aaa\bbbu\ccc\UI\Demo\111.xlsx".AsSpan();
var sss = get(path);
Console.ReadKey();
//定位查找和截取一次完成,因为是ReadOnlySpan中间过程不分配字符内存,只在最后tostring过程才会分配一下,当然这是demo,我自己写返回都不写string了,返回都返回readonlyspan,这样只有最后使用才重新分配,免得提前分配了你有一时半会不用,所以我们也可以知道为啥在2022的官方库里有那么多readonlyxxx,
ValueTask,ValueType,ValueTuple这些玩意了,当并行代码变简单后,如果不控制这些玩意,并行代码的滥用很容易引发各种内存问题
string get(ReadOnlySpan<char> str) => str switch
{
var s when s.Length==0=>string.Empty,
var s=> s.StartsWith(@"\ui\", StringComparison.CurrentCultureIgnoreCase) ? s.ToString() : get(s.Slice(1))
};