C# 字典 Dictionary 遍历

本文介绍了一个使用C#实现的泛型哈希表操作实例,包括元素的添加、删除、查找以及遍历等基本操作,展示了如何使用TryGetValue方法获取指定键的值,并介绍了如何获取哈希表的键和值集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
public class Example
{
         public static void Main()
         {
               //一、创建泛型哈希表,然后加入元素
               Dictionary<string, string> oscar = new Dictionary<string, string>();
               oscar.Add("哈莉?贝瑞", "《死囚之舞》");
               oscar.Add("朱迪?丹奇", "《携手人生》");
               oscar.Add("尼科尔?基德曼", "《红磨坊》");
               oscar.Add("詹妮弗?康纳利", "《美丽心灵》");
               oscar.Add("蕾妮?齐维格", "《BJ单身日记》");

               //二、删除元素
               oscar.Remove("詹妮弗?康纳利");

               //三、假如不存在元素则加入元素
               if (!oscar.ContainsKey("茜茜?斯派克")) oscar.Add("茜茜?斯派克", "《不伦之恋》");
               

               //四、显然容量和元素个数
               Console.WriteLine("元素个数: {0}", oscar.Count);

               //五、遍历集合
               Console.WriteLine("74届奥斯卡最佳女主角及其电影:");
               foreach (KeyValuePair<string, string> kvp in oscar)
               {
                      Console.WriteLine("姓名:{0},电影:{1}", kvp.Key, kvp.Value);
               }

              //六、得到哈希表中键的集合
              Dictionary<string, string>.KeyCollection keyColl = oscar.Keys;
              //遍历键的集合
              Console.WriteLine("最佳女主角:");
              foreach (string s in keyColl)
              {
                   Console.WriteLine(s);
              }

              //七、得到哈希表值的集合
              Dictionary<string, string>.ValueCollection valueColl = oscar.Values;
              //遍历值的集合
              Console.WriteLine("最佳女主角电影:");
              foreach (string s in valueColl)
              {
                   Console.WriteLine(s);
              }

              //八、使用TryGetValue方法获取指定键对应的值
              string slove = string.Empty;
              if (oscar.TryGetValue("朱迪?丹奇", out slove))
                     Console.WriteLine("我最喜欢朱迪?丹奇的电影{0}", slove);
              else
                     Console.WriteLine("没找到朱迪?丹奇的电影");

              //九、清空哈希表
              oscar.Clear();
              Console.ReadLine();
       }
}
### 遍历C#字典的方法 在C#中,`Dictionary<TKey, TValue>` 是一种常用的数据结构,用于存储键值对集合。为了有效地遍历字典中的项,可以采用多种方法。 #### 使用 `foreach` 循环 最常见的方式是利用 `foreach` 循环来迭代字典中的每一个条目: ```csharp var dictionary = new Dictionary<string, int> { { "one", 1 }, { "two", 2 } }; foreach (KeyValuePair<string, int> pair in dictionary) { Console.WriteLine($"Key: {pair.Key}, Value: {pair.Value}"); } ``` 这种方法简单直观,并且能够访问到每一对键和对应的值[^1]。 #### 获取键或值得集合并进行遍历 如果只需要操作所有的键或者全部的值,则可以直接获取这些部分作为独立序列来进行处理: ```csharp // 取得所有key foreach (string key in dictionary.Keys) { Console.WriteLine(key); } // 或者取得所有value foreach (int value in dictionary.Values) { Console.WriteLine(value); } ``` 这种方式提高了灵活性,在某些场景下可能更加方便。 #### LINQ查询表达式 对于更复杂的筛选条件或是需要转换数据的情况,LINQ 提供了一种优雅的选择: ```csharp using System.Linq; var filteredItems = from item in dictionary where item.Value > 0 select item; foreach (var item in filteredItems) { Console.WriteLine($"{item.Key}: {item.Value}"); } ``` 此代码片段展示了如何通过LINQ语句过滤特定范围内的项目。 #### 最佳实践建议 当涉及到性能优化时,应该注意以下几点: - 尽量减少不必要的枚举次数; - 如果仅需读取而无需修改内容的话,考虑使用只读视图如 `ReadOnlyDictionary<TKey,TValue>`; - 对于大型字典对象的操作应评估其效率影响;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值