我有这段代码:
stringCutted = myString.Split("/"). // ???
并且我想直接,快速地在stringCutted
中存储string[]
的最后一个元素,而不将分割的数组存储在变量中,并使用{{访问该元素1}}。
这在C#中是否可行?
答案 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();
第一个'\'实际上跳过第二个'\'