首页 > 编程语言 >C# 用foreach迭代集合时获取索引

C# 用foreach迭代集合时获取索引

时间:2024-03-05 13:57:15浏览次数:15  
标签:index arr 迭代 C# System 索引 foreach var

一般做法是循环外部定义index,内部累加值 

static void Main(string[] args)
{
    var arr = new List<string>() { "aaa", "bbb", "ccc" };
    var index = 0;
    foreach (var val in arr)
    {
        index++;
        Console.WriteLine($"{index},{val}");
    }
}

 

 有时并不想另外定义index,那就可以用System.Linq下的Enumerable.Select+元组方式,就可以同时获得值和索引。

Framework 4.0~4.6.2以下需另装包System.ValueTuple,System.ValueTuple最低支持Framework 4.0 

 

static void Main(string[] args)
{
    var arr = new List<string>() { "aaa", "bbb", "ccc" };
    foreach (var (item, i) in arr.Select((value, i) => (value, i)).ToList())
    {
        Console.WriteLine($"{i},{item}");
    }
}

 

标签:index,arr,迭代,C#,System,索引,foreach,var
From: https://www.cnblogs.com/yylyhl/p/18053383

相关文章

  • tomcat8.5+ windows中html页面及控制台中文乱码问题解决办法
    tomcat8.5+windows中html页面及控制台中文乱码问题解决办法————————————————版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/onemy/article/details/106215384 https://blog.csdn.......
  • docker安装Rabbitmq
    搜索rabbitmq镜像dockersearchrabbitmq默认拉取最新版本镜像dockerpullrabbitmq创建并运行rabbitmq容器dockerrun-d--hostnamemy-rabbit--namemy-rabbit-p15672:15672-p5673:5672rabbitmq-d:该选项表示在后台(detachedmode)运行Docker容器,即启动一个守护......
  • 华为交换机配置acl策略
    [SX-12FS-CoreSW]aclnamea19953001[SX-12FS-CoreSW-acl-adv-a1995]dis [SX-12FS-CoreSW-acl-adv-a1995]displaythi [SX-12FS-CoreSW-acl-adv-a1995]displaythisaclnamea19953001rule999permitipsource192.168.195.00.0.0.255destination172.25.82.630......
  • Python:如何风骚而又不失优雅的使用Switch...Case
    本渣PHP屌丝一枚,最近在用Python做一个东西碰到了这个问题,在这里给没踩过坑的朋友分享下以Python2.7为例从前有座山碰到参数特别多的情况的时候总是看着一堆if...elseif抓狂,斩不断,理还乱,幸好有Switch...Case可以很方便的处理多种情况的参数但是在Python中没有Switch...Case......
  • 使用go写的etcd转发
    背景:因为公司中的机器比较老。我们的云上监控规定,使用的token的方式来监控,所以无法监控我们的etcd集群,我这里提供的一个etcd数据转发功能,能让监控到etcd集群packagemainimport( "crypto/tls" "crypto/x509" "fmt" "io" "net/http" "os" "sync" "......
  • TCP和UDP可以使用同一个端口号吗?
    TCP和UDP可以使用同一个端口号吗?首先说答案:可以。怎么理解呢?我想这个问题要从计算机网络通信谈起,学过计算机网络的同学,可能都还记得7层或者4层网络模型,TCP/UDP属于其中的传输层协议,在传输层之下是网络层,网络层主要通过IP协议来进行通信,这也是我们日常程序开发中能够接触到的最......
  • asp.net core 中基于策略的授权-自定义授权
    前两篇文章扫盲篇,进阶篇中介绍了基本的asp.netcore中基于策略的授权的使用方法。使用策略授权时,只能指定策略,不能配置其他信息。[Authorize(Policy="AtLeast21")]//指定要验证的策略publicclassAlcoholPurchaseController:Controller{publicIA......
  • NetCore3.1 引入PostgerSql + DbFirst
    十年河东,十年河西,莫欺少年穷学无止境,精益求精1、新建控制台项目PostgreSQLApp,引入如下包<ProjectSdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp3.1</TargetFramework></Prope......
  • 6.Python3 迭代器与生成器
    Python3迭代器与生成器1.迭代器迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器迭代器的定义字面意思:更新迭代,器:工具:可更新迭代的工具。专业角度:内部含有'__iter__'方法并且含......
  • ASP.NET Core - 配置系统之配置读取
    一个应用要运行起来,往往需要读取很多的预设好的配置信息,根据约定好的信息或方式执行一定的行为。配置的本质就是软件运行的参数,在一个软件实现中需要的参数非常多,如果我们以HardCode(硬编码)的方式写在应用代码中,这样配置就会很乱,而且后续也不容易修改。乱而多,而且不容易修改,......