首页 > 编程语言 >C#8 中有趣的的索引和范围特性

C#8 中有趣的的索引和范围特性

时间:2024-07-17 11:19:41浏览次数:14  
标签:.. 获取 C# 元素 myArray 索引 var 有趣

C#8 中有趣的的索引和范围特性

        var array = new int[]{3,4,6,4,52,63,5,545,4,345,5,52,6};
        Debug.Log(array[^5]);
        Debug.Log(array[5..8].Length);

使用

这些索引和范围特性可以让您更方便地访问和操作数组、列表或字符串中的元素。它们不仅可以提高代码的可读性,还可以减少一些常见的边界检查和计算工作。

  1. 倒数第一个元素 [^1]:
  • 这个语法可以用来访问数组、列表或字符串的倒数第一个元素。
  • 例如, myArray[^1] 可以获取数组 myArray 的最后一个元素。
  1. 范围 [3..5]:

    • 这个语法可以用来访问数组、列表或字符串的一个子集。
    • [3..5] 表示从第4个元素(索引为3)开始,到第6个元素(索引为5)结束(不包括)。
  2. 其他特性:

    • [..]: 不指定开始或结束索引,可以获取整个数组/列表/字符串。
    • [^5..]: 获取从倒数第5个元素开始到结尾的所有元素。
    • [..5]: 获取从开头到第6个元素(索引为5)的所有元素。
    • [2..]: 获取从第3个元素(索引为2)开始到结尾的所有元素。

Linq实现

  1. 倒数第一个元素 [^1]:

    • LINQ 中可以使用 Last() 方法来获取集合的最后一个元素:

      var lastElement = myArray.Last();
      
  2. 范围 [3..5]:

    • LINQ 中可以使用 Skip(3).Take(2) 来获取从第4个元素开始的2个元素:

      var subArray = myArray.Skip(3).Take(2);
      
  3. 其他特性:

    • [..]: 获取整个集合可以使用 ToArray()ToList() 方法:

      var fullArray = myArray.ToArray();
      
    • [^5..]: 获取从倒数第5个元素开始到结尾的所有元素可以使用 Skip(myArray.Length - 5) 方法:

      var lastFiveElements = myArray.Skip(myArray.Length - 5);
      
    • [..5]: 获取从开头到第6个元素(索引为5)的所有元素可以使用 Take(6) 方法:

      var firstSixElements = myArray.Take(6);
      
    • [2..]: 获取从第3个元素(索引为2)开始到结尾的所有元素可以使用 Skip(2) 方法:

      var fromThirdElement = myArray.Skip(2);
      

通过这些 LINQ 方法,您可以实现与索引和范围特性类似的功能,并以更通用的方式操作各种集合类型,包括数组、列表、字典等。

需要注意的是,LINQ 方法返回的是新的集合,而不是原集合的引用,所以如果需要修改原集合,您需要将结果赋值回去。


标签:..,获取,C#,元素,myArray,索引,var,有趣
From: https://www.cnblogs.com/Firepad-magic/p/18306897

相关文章

  • Transformers Pipeline + Mistral-7B-Instruct-v0.x修改Chat Template
    在使用https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3提供的Generatewithtransformers代码进行测试时,产生以下报错:fromtransformersimportpipelinemessages=[{"role":"system","content":"Youareapiratechatbotwhoalw......
  • 高德解析城市的分析,根据高德的经纬度获取城市cityCode
    高德解析城市的分析,根据高德的经纬度获取城市cityCode高德解析城市的分析,根据高德的经纬度获取城市cityCodehttp://restapi.amap.com/v3/geocode/regeo?output=json&location=110.517039,18.817948&key=替换成自己的高德KEY&extensions=base1.高德返回城市(正常情况)江苏省南......
  • DC2靶机渗透报告
    概述测试目的测试范围序号系统IP1本地192.168.152.1282DC2192.168.152.132详细测试流程1、发现测试目标2、信息收集-A参数等同于-sV、-sC、-traceout扫描目标的服务版本以及使用默认脚本扫描-n参数不进行DNS反向解析、-Pn不进行主机ping发现、-p-扫描全端口3、漏洞利用开放一个80......
  • DevExpress WPF中文教程 - 为项目添加GridControl并将其绑定到数据
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • C++(回调函数)
    目录1.使用函数指针2.使用函数对象(仿函数)3.使用std::function和std::bind4.小结回调函数是一种允许函数作为参数传递给另一个函数的机制。在C++中,回调函数常用于实现事件驱动编程、异步操作和可重用性等功能。C++中有多种实现回调函数的方法,包括使用函数指针、函数对象(仿函......
  • DC4靶机渗透测试报告
    概述测试目的测试范围序号系统IP1本地192.168.152.1282靶机DC4192.168.152.134详细测试流程1、发现测试目标2、信息收集开放了22端口和80端口访问80端口,发现没什么可用的,就用BP暴力破解最后得到密码是happy登录3、漏洞利用登录以后可以看到有执行命令的单选框,这个时候我们选择第一......
  • DC5靶机渗透测试报告
    概述测试目的测试范围序号系统IP1本机192.168.152.1282DC5靶机192.168.152.136详细测试流程1、发现测试目标2、信息收集3、漏洞利用访问80端口,这个页面我什么都没有发现,目录扫描好像也没什么用没办法,看一下大佬的WPVulnHub靶机DC-5打靶渗透测试详细过程_dc-5主机渗透试验-CSDN......
  • ChatMoney让你体验古诗词的快乐
    本文由ChatMoney团队出品介绍说明在中华传统文化的璀璨星空里,诗词宛如熠熠生辉的明珠,而飞花令则是其中一颗独特而耀眼的星辰。如今,我们自豪地为您推出专为孩子精心打造的飞花令机器人,为孩子们开启一场充满诗意与乐趣的文学盛宴。一、趣味互动,激发诗词热情飞花令机器人以充......
  • 诗意绽放,ChatMoney点亮孩子的文学之旅
    本文由ChatMoney团队出品介绍说明在中华传统文化的璀璨星空里,诗词宛如熠熠生辉的明珠,而飞花令则是其中一颗独特而耀眼的星辰。如今,我们自豪地为您推出专为孩子精心打造的飞花令机器人,为孩子们开启一场充满诗意与乐趣的文学盛宴。一、趣味互动,激发诗词热情飞花令机器人以充......
  • Codeforces Round 898 (Div. 4)(A~H)
    目录A.ShortSortB.GoodKidC.TargetPracticeD.1DEraserE.BuildinganAquariumF.MoneyTreesG.ABBCorBACBH.MadCityA.ShortSortProblem-A-Codeforces暴力枚举每个位置的交换即可。#include<iostream>#include<algorithm>#include<queue......