在.Split()之后快速select最后一个元素

我有这个代码:

stringCutted = myString.Split("/"). // ??? 

我想直接,快速地存储stringCutted string[]的最后一个元素,而不需要将分割的数组存储在一个variables中,并使用array[array.length]访问该元素。

这在C#中可能吗?

如果您使用的是.NET 3.5或更高版本,使用LINQ to Objects很容易:

 stringCutted = myString.Split('/').Last(); 

请注意, Last() (没有谓词)针对源实现IList<T> (作为一维数组)的情况进行了优化,因此它不会迭代整个数组以查找最后一个元素。 另一方面,这种优化是无证的…

 stringCutted=myString.Split("/").Last() 

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

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

既然你想要一个解决scheme,直接返回最后一个元素,快速,没有存储拆分数组,我认为这可能是有用的:

 stringCutted = myString.Substring(myString.LastIndexOf("/")+1); 

使用LINQ

 "t/e/s/t".Split("/").Last(); 

为了使用这个代码,我跳过Url链接的最后一个元素。

 string url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/'));