.Split()后快速选择最后一个元素

mar*_*zzz 61 c# arrays string split

我有这个代码:

stringCutted = myString.Split("/"). // ???
Run Code Online (Sandbox Code Playgroud)

并且我想直接,快速地存储在分割后stringCutted的最后一个元素中string[],而不将分割的数组存储在变量中并使用array[array.length].

这可能在C#中吗?

Jon*_*eet 129

如果您使用的是.NET 3.5或更高版本,则可以轻松使用LINQ to Objects:

stringCutted = myString.Split('/').Last();
Run Code Online (Sandbox Code Playgroud)

注意Last()(没有谓词)针对源实现的情况IList<T>(作为一维数组)进行了优化,因此这不会遍历整个数组以找到最后一个元素.另一方面,这种优化没有记录......

  • 是的,这是因为LINQ,你需要添加一个'using System.Linq;' 你的代码. (4认同)

Jam*_*iec 25

stringCutted=myString.Split("/").Last()
Run Code Online (Sandbox Code Playgroud)

但是,仅供参考,如果你想从一个路径获取一个文件名,这可以更好地工作:

var fileName=System.IO.Path.GetFileName("C:\\some\path\and\filename.txt"); 
// yields: filename.txt
Run Code Online (Sandbox Code Playgroud)


小智 12

既然你想要一个直接快速返回最后一个元素的解决方案,而不存储分割数组,我认为这可能很有用:

stringCutted = myString.Substring(myString.LastIndexOf("/")+1);
Run Code Online (Sandbox Code Playgroud)