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

时间:2011-08-31 12:25:47

标签: c# arrays string split

我有这段代码:

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

并且我想直接,快速地在stringCutted中存储string[]的最后一个元素,而不将分割的数组存储在变量中,并使用{{访问该元素1}}。

这在C#中是否可行?

6 个答案:

答案 0 :(得分:118)

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

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

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

答案 1 :(得分:25)

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

但是,仅供参考,如果您正试图从路径中获取文件名,这可以更好地工作:

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

答案 2 :(得分:11)

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

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

答案 3 :(得分:3)

使用LINQ

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

答案 4 :(得分:1)

要使用此代码,我会跳过Url链接中的最后一个元素。

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

答案 5 :(得分:0)

要添加:

当字符串格式为'a/b/c/d'

yourstring.Split("/").Last();

当字符串格式为\head_display\27_[Item A]\head_image\original_image\1_Item A.png

yourstring.Split("\\").Last();

第一个'\'实际上跳过第二个'\'