首页 > 其他分享 >末尾运算符 ^ 和 范围运算符 ..

末尾运算符 ^ 和 范围运算符 ..

时间:2023-04-07 10:34:45浏览次数:35  
标签:10 .. int 运算符 numbers output 末尾

调用表达式 ()

使用括号 () 调用()或调用委托。 以下示例演示如何在使用或不使用参数的情况下调用方法,以及调用委托:

Action<int> display = s => Console.WriteLine(s);
var numbers = new List<int>();
numbers.Add(10);
numbers.Add(17);
display(numbers.Count); // output: 2
numbers.Clear();
display(numbers.Count); // output: 0

() 的其他用法:

此外可以使用括号来调整表达式中计算操作的顺序。

强制转换表达式,其执行显式类型转换,也可以使用括号。

int a, b, c;
a = 7;
b = a;
c = b++;
b = a + b * c;
c = a >= 100 ? b : c / 10;
a = (int)Math.Sqrt(b * b + c * c);
string s = "String literal";
char l = s[s.Length - 1];
var numbers = new List<int>(new[] { 1, 2, 3 });
b = numbers.FindLast(n => n > 1);

从末尾运算符 ^ 开始索引

^ 运算符指示序列末尾的元素位置。 对于长度为 length 的序列,^n 指向与序列开头偏 移 length - n 的元素。 例如,^1 指向序列的最后一个元素,^length 指向序列的第一 个元素。

int[] xs = new[] { 0, 10, 20, 30, 40 };
int last = xs[^1];
Console.WriteLine(last); // output: 40
var lines = new List<string> { "one", "two", "three", "four" };
string prelast = lines[^2];
Console.WriteLine(prelast); // output: three
string word = "Twenty";
Index toFirst = ^word.Length;
char first = word[toFirst];
Console.WriteLine(first); // output: T

如前面的示例所示,表达式 ^e 属于 System.Index 类型。 在表达式 ^e 中,e 的结果必 须隐式转换为 int。 还可以将 ^ 运算符与^一起使用以创建一个索引范围。 有关详细信息,请参阅索引和范 围。

范围运算符 ..

.. 运算符指定某一索引范围的开头和末尾作为其操作数。 左侧操作数是范围的包含性开 头。 右侧操作数是范围的不包含性末尾。 任一操作数都可以是序列开头或末尾的索引, 如以下示例所示:

int[] numbers = new[] { 0, 10, 20, 30, 40, 50 };
int start = 1;
int amountToTake = 3;
int[] subset = numbers[start..(start + amountToTake)];
Display(subset); // output: 10 20 30
int margin = 1;
int[] inner = numbers[margin..^margin];
Display(inner); // output: 10 20 30 40
string line = "one two three";
int amountToTakeFromEnd = 5;
Range endIndices = ^amountToTakeFromEnd..^0;
string end = line[endIndices];
Console.WriteLine(end); // output: three
void Display<T>(IEnumerable<T> xs) => Console.WriteLine(string.Join(" ",
xs));

如前面的示例所示,表达式 a..b 属于 System.Range 类型。 在表达式 a..b 中,a 和 b 的结果必须隐式转换为 Int32 或 Index。

可以省略 .. 运算符的任何操作数来获取无限制范围: a.. 等效于 a..^0 ..b 等效于 0..b .. 等效于 0..^0

int[] numbers = new[] { 0, 10, 20, 30, 40, 50 };
int amountToDrop = numbers.Length / 2;int[] rightHalf = numbers[amountToDrop..];
Display(rightHalf); // output: 30 40 50
int[] leftHalf = numbers[..^amountToDrop];
Display(leftHalf); // output: 0 10 20
int[] all = numbers[..];
Display(all); // output: 0 10 20 30 40 50
void Display<T>(IEnumerable<T> xs) => Console.WriteLine(string.Join(" ",
xs));
下表显示了表达集合范围的各种方法:

 

 

int[] oneThroughTen =
{
 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
};
Write(oneThroughTen, ..);
Write(oneThroughTen, ..3);
Write(oneThroughTen, 2..);
Write(oneThroughTen, 3..5);
Write(oneThroughTen, ^2..);
Write(oneThroughTen, ..^3);
Write(oneThroughTen, 3..^4);
Write(oneThroughTen, ^4..^2);
static void Write(int[] values, Range range) =>
 Console.WriteLine($"{range}:\t{string.Join(", ", values[range])}");
// Sample output:
// 0..^0: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
// 0..3: 1, 2, 3
// 2..^0: 3, 4, 5, 6, 7, 8, 9, 10
// 3..5: 4, 5
// ^2..^0: 9, 10
// 0..^3: 1, 2, 3, 4, 5, 6, 7
// 3..^4: 4, 5, 6
// ^4..^2: 7, 8

 

 

标签:10,..,int,运算符,numbers,output,末尾
From: https://www.cnblogs.com/tx1185498724/p/17295303.html

相关文章

  • C#路径(\;.\;..\;..\..\)测试笔记
    staticvoidMain(string[]args){/*文件路径分为绝对路径和相对路径。完整描述文件位置的路径就是绝对路径,相对于目标的位置就是相对路径。*绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe*相对路......
  • 跨域问题:Access to XMLHttpRequest at......
    前端代码报错,如图: 1、因本地不支持跨域,需要安装下【允许跨域的app】pipinstalldjango-cors-headers 2、回到Django项目中进入setting.pyINSTALLED_APPS:#我们创建了哪些子项目要在这里添加,不然如数据库的类不会帮创建INSTALLED_APPS=['django.contrib.admin'......
  • C++运算符重载
    什么是运算符重载运算符重载(Operatoroverload)是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时做出不同的行为。运算符重载的意义运算符重载的本质是函数重载,是实现多态的重要手段,为用户提供了一个直观的接口。调用运算符操作自定义数据类型其实就是调用......
  • 自增ID相同时报错: Database operation expected to affect 1 row(s) but actually aff
    数据库操作预计会影响1行,但实际上影响了2行。自加载实体以来,数据可能已被修改或删除。有关理解和处理乐观并发异常的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=527962。项目场景:使用EF进行数据修改并保存_dbContext.SaveChanges();的时候出现错误问题描述:在EF里......
  • 逍遥自在学C语言 | 逻辑运算符
    前言一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、构成和表示方式逻辑运算符是用来比较和操作布尔值的运算符C语言中的逻辑运算符主要有3个,如下表所示运算符名称示例描......
  • UICollectionView(loading...)
    前言用第三方判断当前网络情况(AFN)#import"AFNetworkReachabilityManager.h"-(void)reach{AFNetworkReachabilityManager*manager=[AFNetworkReachabilityManagersharedManager];[managerstartMonitoring];[managersetReachabilityStatusChangeBl......
  • 大意了,一次多线程操作不当导致的线上事故...
    大家好,我是飘渺。今天给大家分享个生产事故,一个由于多线程操作不当导致的线上事故,事情是这样的~事故描述从6点32分开始少量用户访问app时会出现首页访问异常,到7点20分首页服务大规模不可用,7点36分问题解决。整体经过6:58发现报警,同时发现群里反馈首页出现网络繁忙,考虑到前几日晚上......
  • 3-运算符
    1.运算符和表达式运算符:​就是对常量或者变量进行操作的符号。​比如:+-*/表达式:​用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。​比如:a+b这个整体就是表达式。​而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。2.算术运......
  • 重载成员访问运算符
    #include<iostream>usingstd::cout;usingstd::endl;classData{public:Data(intdata=0):_data(data){cout<<"Data(int=0)"<<endl;}intgetData()const{return_data;......
  • 20230405-Python运算符-day3
    运算符4月4日算数运算符赋值运算符复合赋值运算符⽐较运算符逻辑运算符算数运算符符号描述实例+加print(1+1)输出结果为2-减print(1-1)输出结果为0*乘print(2*2)输出结果为4/除print(4/2)输出结果为2//整除print(9//4)输出结果......