首页 > 编程语言 >.NET(C#)遍历(for,foreach,while)字典(Dictionary)的几种方法

.NET(C#)遍历(for,foreach,while)字典(Dictionary)的几种方法

时间:2024-02-12 11:11:05浏览次数:57  
标签:遍历 Dictionary C# while foreach using 字典

 

.NET (C#) 中,Dictionary<TKey, TValue> 是一种非常实用的集合类型,用于存储键值对的集合。遍历 Dictionary 的方法有多种,包括使用 for 循环、foreach 循环和 while 循环。使用 foreach 循环是遍历 Dictionary 中所有键值对最常见和最简单的方法。for 和 while 循环在遍历 Dictionary 时不是很常见,因它们需要通过索引访问元素,但在某些特定情况下可能会有用。

参考文档:.NET(C#)遍历(for,foreach,while)字典(Dictionary)的几种方法-CJavaPy

1、使用for遍历字典(Dictionary)

由于 Dictionary 不是基于索引的集合,所以直接使用 for 循环遍历有些不太方便,但可以通过转换字典的键或值为列表或使用元素索引来实现。ElementAt()需要引入using System.Linq命名空间,Dictionary命令空间是using System.Collections.Generic;

使用示例:.NET(C#)遍历(for,foreach,while)字典(Dictionary)的几种方法-CJavaPy

2、使用foreach遍历字典(Dictionary)

foreach 循环是遍历字典中的每个元素(键值对)最直接的方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
        Dictionary<string, string> dic =
                new Dictionary<string, string> {
                    ["key1"] = "value1",
                    ["key2"] = "value2",
                    ["key3"] = "value3"
                };
        foreach (string key in dic.Keys) {
                Console.WriteLine ("key is " + key);
                Console.WriteLine ("value is " + dic[key]);
            }
            foreach (string value in dic.Values) {
                Console.WriteLine ("value is " + value);
            }
            foreach (KeyValuePair<string, string> item in dic) {
                Console.WriteLine ("key is " + item.Key);
                Console.WriteLine ("value is " + item.Value);
            }
        }
    }
}

3、使用while遍历字典(Dictionary)

使用 while 循环遍历字典类似于使用 for 循环,需要借助索引,使用ElementAt()访问,代码如下,

使用示例:.NET(C#)遍历(for,foreach,while)字典(Dictionary)的几种方法-CJavaPy

标签:遍历,Dictionary,C#,while,foreach,using,字典
From: https://www.cnblogs.com/tinyblog/p/18013740

相关文章

  • 在k8S中,Scheduler作用及实现原理是什么?
    在Kubernetes(k8s)中,Scheduler是一个核心组件,它的主要作用是负责集群中的Pod调度。具体来说:Scheduler的作用:资源分配:根据每个Pod的资源请求(如CPU、内存),以及节点当前的可用资源情况,选择合适的Node来运行Pod。满足约束条件:考虑Pod的调度约束条件和亲和性/反亲和性规则,例如节点标签......
  • JOISC 2016 题解
    JOISC2016loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1一开始把题目看错了,还写了棵线段树。把询问离线,倒着扫一遍,就变成了求最长不上升子序列,用树状数组维护即可。提交记录D1T2来自Kubic的神仙做法。考虑Filp一个位置和剩下所有位置,记录每个数作为答案......
  • JOISC 2015 题解
    JOISC2015loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1简单题。因为\(k\)很小,考虑依次确定最后第\(i\)位是什么。我们倒序考虑所有操作,维护最后第\(i\)位当前在第几位,就可以一直推下去。提交记录D1T2直接暴力复杂度就是\(O(k4^k)\)的,可以通过。提交......
  • JOISC 2014 题解
    JOISC2014loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1想到了最短路的做法,不过可能还需要整体二分,复杂度至少有2log。有复杂度更优秀的贪心做法。把边按时间倒序加边,然后从终点开始dfs来更新每个点可以的最晚出发时间,每条边走之后肯定就不会再让答案变优了,......
  • FreeSWITCH在session上执行特定dialplan
    操作系统:CentOS7.6_x64 FreeSWITCH版本:1.10.9日常开发中,会遇到需要在已存在的session上执行特定拨号方案的情况,今天整理下这方面的内容,我将从以下几个方面进行描述:实验环境准备基于transfer实现基于execute_extension实现基于transfer和execute_extension实现......
  • CF1928B
    赛时犯大病,维护区间实现的时候把满足条件的区间末尾直接设置成区间开头,还找不出hack数据分析通过读题,可以得出两个结论:\(a\)​数组中一组相同的数中只有一个能对答案造成贡献。因为排列中每个数不同,相同的数加不同的数不可能得出相同的数。一段去重后的数列要贡献答......
  • [转帖]Oracle number类型详解
    Oraclenumber类型详解简介基本说明容易出错情况Number与MySQL数据类型简介Oracle的number类型比较复杂,很多限制,但是掌握一点小技巧就能轻松搞定。基本说明number(precision,scale)precision表示数字中的有效位,从左边第一个不为0的数算起,小数点和负号不计入有效......
  • python3.9 + django4.1 + vue3 ,报错,无法访问配置的路由地址,Using the URLconf defined
    python3.9+django4.1+vue3,报错,无法访问配置的路由地址,UsingtheURLconfdefinedinStudentMgrBE.urls,DjangotriedtheseURLpatterns,inthisorder:-------------------------------------------------------------------------------无法访问 地址,报错如下: Us......
  • 【漏洞复现】用友NC-Cloud系统uploadChunk存在任意文件上传漏洞
    阅读须知花果山的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本......
  • 十七、Cookie和Session
    1、Cookie:保存在客户端浏览器文件上的键值对当浏览器访问某个网站时,浏览器在COOKIE中拿出属于该网站的键值对来访问这个网站。因此这些键值对是按域名来保存在本地文件。一、cookie和session的介绍1、cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要......