在.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('/'));