获取字符串数组的第一个和最后一个元素。

24

如果我有以下字符串数组:

string[] stringArray = {"one", "two", "three", "four"};

除了使用数组索引(stringArray[0],stringArray[3])之外,是否有一种在C#中从数组中获取第一个和最后一个项(“one”,“four”)的方法,类似于stringArray.First和stringArray.Last?


2
为什么你不想使用索引? - Scott
我只是好奇是否还有其他方法,如果没有,我将使用索引,没有问题。 - Adrian
你可以使用LINQ,但是通过索引获取它更好(通常情况下,你会使用array.Length而不是3来获取最后一个元素)。 - Piotr Auguscik
2
当您拥有可用索引的字符串数组时,请使用索引。First()和Last()必须循环遍历数组,性能较差。 - Scott
2
@Scott,First()和Last()并不会降低性能;对于IList<T>作为源,Linq会进行优化并使用索引。 - RichK
5个回答

41

使用 LINQ 的 First()Last() 方法。

此外,这两个方法还有实用的重载,允许指定布尔条件来确定哪些元素应该被视为第一个或最后一个。


13
string[] stringArray = { "one", "two", "three", "four" };
var last=stringArray.Last();
var first=stringArray.First();

7

在System.Linq命名空间中有stringArray.First()stringArray.Last()这两个扩展方法。


7

获取数组的第一个索引的不同方法:

Console.WriteLine(stringArray.First());
Console.WriteLine(stringArray.ElementAt(0));
Console.WriteLine(stringArray[0]);
var stringEnum = stringArray.GetEnumerator();
if (stringEnum.MoveNext())
    Console.WriteLine(stringEnum.Current);

从数组中获取最后一个索引的不同方法:

Console.WriteLine(stringArray.Last());
if (stringArray.Any())
    Console.WriteLine(stringArray.ElementAt(stringArray.Count()-1));
Console.WriteLine(stringArray[stringArray.Length -1]);
var stringEnum = stringArray.GetEnumerator();
string lastValue = null;
while (stringEnum.MoveNext())
    lastValue = (string)stringEnum.Current;
Console.WriteLine(lastValue);

3

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