2014-03-14 57 views
2

lstArray是字符串数组列表:如何获取字符串数组列表的最后一个元素?

List<string[]> lstArray = new List<string[]>(); 

显然它的大小而变化。在下面的示例中它有两个元素;第一个有4个,第二个有5个项目。 最后一项总是指一个表名(tblPerson,tblCompany等)。这就是我想要收集的。 有时可能是第4,第5或甚至第8项。我将有另一个填充这些表名的字符串列表。

lstArray elements

lstArray [0]:

enter image description here

lstArray 1

enter image description here

回答

8

如果它总是最后一个元素,你可以使用这个:

var lastElements = lstArray.Select(e => e.Last()); 

如果某些阵列具有零个元素,你也可以使用:

var lastElements = lstArray.Select(e => e.LastOrDefault()); 

在这种情况下,你可以用一些null条目结束。另一种方式,以避免可能是这样的:

var lastElements = lstArray.Select(e => e.Count == 0 ? string.Empty : e.Last()); 

这将使你string.Empty,而不是null为空数组,这将在一定程度上更不容易出错的耗时的代码。

+1

你可以包括一个。在哪里过滤空数组,但除此之外,你的答案得到我的投票。 – MarkO

+0

@David工作。感谢您的其他信息。 – Jude

2

下面将回报lstArray最后一个元素:

var lastElement = lstArray.Last(); 

不过你想要的是包含在lstArray字符串数组的所有元素最后,你可以得到这样的集合:

var lastElements = lstArray.Select(i => i.Last()) 
+1

这将提供在列表的最后一个阵列,而不是最后一个元素的列表在每个数组中。 – David

+0

你说得对,我会纠正它。 – elnigno

1

你的意思是这样?:

List<string[]> lstArray = new List<string[]>(); 
var result = lstArray.Select(a=>a.Last()) 
+0

是的。究竟。谢谢 – Jude

1
var lastElement = lstArray.Last().Last() //this will give the last element of last array 

var lastElement = lstArray.Select(sublist => sublist.Last()); //this will give last element of each array in the list 
+0

是啊@大卫......我现在编辑过 – Arjit

0

获取列表的最后一个项目

int len = strList.length(); 
String strArr[] = strList.get(len); 

获取字符串数组最后一个元素,即最后一个字符串

String str = strArr[strArr.size()-1] 
相关问题