C# 获取 List of List 的最后一个元素

5

这可能是一个非常简单的问题,我想访问最后一个元素:

List<string>[] list = new List<string>[3];

所以每个列表内部都有3个元素,但是我应该如何访问这些列表中的最后一个元素?

这里实际上不是在声明一个由四个字符串列表组成的数组吗?而这些列表又包含任意数量的字符串? - Will A
3个回答

23
你可以使用Enumerable.Last()方法:
string lastElement = list.Last().Last();

第一个调用返回最后一个 List<string>,而第二个调用将返回该列表中的最后一个字符串。

另外,由于您知道数组的长度,您可以直接访问该列表,并执行以下操作:

string lastElement = list[2].Last();
如果您事先知道,总是会有3个具有3个元素的列表,那么您可能想考虑使用多维数组而不是单独几个列表:
string[,] matrix = new string[3,3];

// fill it in..

string last = matrix[2,2];

@MCH:你可以使用list[0].Last(),list[1].Last()等等... 这是你想要的吗? - Reed Copsey
1
假设使用 .Net 3.5+,对于框架的早期版本,list[3][list[3].Count - 1] 将会执行相同的操作。 - Will A
@MCH:或者,如果您想要所有最后一个元素的列表,可以执行以下操作:list.Select(l => l.Last()).ToList(); - Reed Copsey
@Will A:(应该是list[2] - 它只有3个元素长) - Reed Copsey
谢谢大家的帮助。我还是dot net的新手,正在学习WPF,所以即使是一些简单的东西也会让我困扰。 - MCH
显示剩余3条评论

6

如果你有 [[1,2,3],[4,5,6],[7,8,9]] 并且想要 9,使用 list.Last().Last()。如果你想要 [3,6,9],使用 list.Select(sublist => sublist.Last())


3

C# 8.0 中,你可以使用“帽子”运算符 (^) 从列表末尾选择一个元素。

索引从末尾开始的运算符 ^,它指定了索引相对于序列末尾的位置。

// get last item from last array
string last = list[^1][^1];

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