dri*_*net 108
LINQ提供Last():
csharp> int[] nums = {1,2,3,4,5};
csharp> nums.Last();
5
Run Code Online (Sandbox Code Playgroud)
当您不想不必要地创建变量时,这很方便.
string lastName = "Abraham Lincoln".Split().Last();
Run Code Online (Sandbox Code Playgroud)
Mat*_*kan 53
int[] array = { 1, 3, 5 };
var lastItem = array[^1]; // 5
Run Code Online (Sandbox Code Playgroud)
Fre*_*örk 50
该数组有一个Length
属性,可以为您提供数组的长度.由于数组索引从零开始,最后一项将是Length - 1
.
string[] items = GetAllItems();
string lastItem = items[items.Length - 1];
int arrayLength = array.Length;
Run Code Online (Sandbox Code Playgroud)
在C#中声明数组时,您给出的数字是数组的长度:
string[] items = new string[5]; // five items, index ranging from 0 to 4.
Run Code Online (Sandbox Code Playgroud)
计算最后一项的索引:
int index = array.Length - 1;
Run Code Online (Sandbox Code Playgroud)
如果数组为空,则会得到 -1 - 你应该将其视为特殊情况。
要访问最后一个索引:
array[array.Length - 1] = ...
Run Code Online (Sandbox Code Playgroud)
或者
... = array[array.Length - 1]
Run Code Online (Sandbox Code Playgroud)
如果数组实际上为空(长度为 0),则会引发异常。
在 C# 8.0 中,您可以使用所谓的“帽子”(^) 运算符!当您想在一行中做某事时,这很有用!
var mystr = "Hello World!";
var lastword = mystr.Split(" ")[^1];
Console.WriteLine(lastword);
// World!
Run Code Online (Sandbox Code Playgroud)
而不是旧的方式:
var mystr = "Hello World";
var split = mystr.Split(" ");
var lastword = split[split.Length - 1];
Console.WriteLine(lastword);
// World!
Run Code Online (Sandbox Code Playgroud)
它并没有节省多少空间,但看起来更清晰(也许我认为这是因为我来自 python?)。这也比调用MSDN 之类的方法.Last()
或阅读更多内容要好得多.Reverse()
编辑:您可以像这样将此功能添加到您的课程中:
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!")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该Index.IsFromEnd
会告诉你,如果有人使用“帽子”(^)运算符
归档时间: |
|
查看次数: |
146291 次 |
最近记录: |