查找数组的最后一个索引

如何在 C # 中检索数组的最后一个元素?

259362 次浏览

计算最后一项的索引:

int index = array.Length - 1;

如果数组为空,则返回 -1-您应该将其视为特殊情况。

要访问最后一个索引:

array[array.Length - 1] = ...

或者

... = array[array.Length - 1]

如果数组实际为空(长度为0) ,则会导致异常。

说你的数组叫做 arr

arr[arr.Length - 1]

如果数组为空,则返回 NULL,否则返回最后一个元素。

var item = (arr.Length == 0) ? null : arr[arr.Length - 1]

数组具有 Length属性,该属性将给出数组的长度。由于数组索引是从零开始的,因此最后一项将位于 Length - 1

string[] items = GetAllItems();
string lastItem = items[items.Length - 1];
int arrayLength = array.Length;

在 C # 中声明数组时,给出的数字是数组的长度:

string[] items = new string[5]; // five items, index ranging from 0 to 4.

使用 数组。 GetUpperBound (0)数组,长度包含数组中的项数,因此只有在数组从零开始的假设下才能读取 Llength -1。

LINQ 提供 最后():

csharp> int[] nums = {1,2,3,4,5};
csharp> nums.Last();
5

当您不想创建不必要的变量时,这很方便。

string lastName = "Abraham Lincoln".Split().Last();

值得一提吗?

var item = new Stack(arr).Pop();

C # 8 :

int[] array = { 1, 3, 5 };
var lastItem = array[^1]; // 5

还有,从。NET Core 3.0(及。NET Standard 2.1)(C # 8)你可以使用 Index类型来保持数组的索引从结束:

var lastElementIndexInAnyArraySize = ^1;
var lastElement = array[lastElementIndexInAnyArraySize];

可以使用此索引获取任意长度的数组中的最后一个数组值,例如:

var firstArray = new[] {0, 1, 1, 2, 2};
var secondArray = new[] {3, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5};
var index = ^1;
var firstArrayLastValue = firstArray[index]; // 2
var secondArrayLastValue = secondArray[index]; // 5

更多信息请查看 文件

数组从索引0开始,以 n-1结束。

static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5 };
int length = arr.Length - 1;   // starts from 0 to n-1


Console.WriteLine(length);     // this will give the last index.
Console.Read();
}

在 C # 8.0中新增了一个名为“ hat”(^)的操作符!当您想在一行中完成某些操作时,这非常有用!

var mystr = "Hello World!";
var lastword = mystr.Split(" ")[^1];
Console.WriteLine(lastword);
// World!

而不是旧的方式:

var mystr = "Hello World";
var split = mystr.Split(" ");
var lastword = split[split.Length - 1];
Console.WriteLine(lastword);
// World!

它不会节省太多空间,但看起来更清晰(也许我这样想是因为我来自 python?).这也比调用类似 .Last().Reverse()更多信息请访问 MSDN的方法要好得多

编辑: 您可以像下面这样将这个功能添加到您的类中:

public class MyClass
{
public object this[Index indx]
{
get
{
// Do indexing here, this is just an example of the .IsFromEnd property
if (indx.IsFromEnd)
{
Console.WriteLine("Negative Index!")
}
else
{
Console.WriteLine("Positive Index!")
}
}
}
}

Index.IsFromEnd将告诉您是否有人正在使用“ hat”(^)操作符

  static void Main(string[] args)
{


int size = 6;
int[] arr = new int[6] { 1, 2, 3, 4, 5, 6 };
for (int i = 0; i < size; i++)
{


Console.WriteLine("The last element is {0}", GetLastArrayIndex(arr));
Console.ReadLine();
}


}


//Get Last Index
static int GetLastArrayIndex(int[] arr)
{
try
{
int lastNum;
lastNum = arr.Length - 1;
return lastNum;
}
catch (Exception ex)
{
return 0;
}
}

这是最简单的,适用于所有版本。

int[] array = { 1, 3, 5 };
int last = array[array.Length - 1];
Console.WriteLine(last);
// 5