获取列表/数组的最后一个元素

6
有时我需要在数组中获取最后一个元素,如果我要分割一些内容。虽然我没有找到比这种方法更好的方法:
_Path.Split('\\')[_Path.Split('\\').Length - 1]

有没有比这种方法更简单的方法?在这种情况下,理解起来很好,但如果变得更长,就不再是这样了。


1
使用 Linq。_Path.Split('\\').Last()。重复的问题,请在提出新问题之前先搜索。 - M.kazem Akhgary
1
使用 System.Linq; var last = _Path.Split('\').Last(); - Maarten
3个回答

8

使用LastLastOrDefault扩展方法:

_Path.Split('\\').Last()
  • 如果没有元素,Last会抛出异常
  • LastOrDefault将返回默认值default(T),对于引用类型来说,则为null

你需要添加:

using System.Linq;

它总是让我感到有些害怕,因为那里涉及到 IEnumerable 的东西,但如果它按照你所写的方式工作,那就没问题了 ^^ - Daniel Frühauf
@DanielFrühauf 没问题,为什么吓到你了?LINQ to objects 是一个非常强大的工具集,值得掌握。 - Lucas Trzesniewski

3

使用LINQ的方法Last()

_Path.Split('\\').Last();

不要忘记必须使用System.Linq;


1

有没有比这个方法更简单的方式?

有,可以使用 Enumerable.Last 方法:

var last = _Path.Split('\\').Last();

如果你不确定 Path.Split 会返回任何项,可以使用 Enumerable.LastOrDefault 并检查是否为 null。
var last = _Path.Split('\\').LastOrDefault();
if (last != null)
{
    // Do stuff.
}

在空数组的情况下,LastOrDefault() 也会返回默认值。 - M.kazem Akhgary
@M.kazem 是的,我正在编辑。 - Yuval Itzchakov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接