C# Dictionary 的几种遍历方法

Dictionary<string, int> list = new Dictionary<string, int>();

        list.Add("d", 1);



        //3.0以上版本

        foreach (var item in list)

        {

            Console.WriteLine(item.Key + item.Value);

        }

        //KeyValuePair<T,K>

        foreach (KeyValuePair<string, int> kv in list)

        {

            Console.WriteLine(kv.Key + kv.Value);

        }

        //通过键的集合取

        foreach (string key in list.Keys)

        {

            Console.WriteLine(key + list[key]);

        }

        //直接取值

        foreach (int val in list.Values)

        {

            Console.WriteLine(val);

        } 

        //非要采用for的方法也可

        List<string> test = new List<string>(list.Keys);



        for (int i = 0; i < list.Count; i++)

        {

            Console.WriteLine(test[i] + list[test[i]]);

        }

如果有不足之处,请指出!

### 遍历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、付费专栏及课程。

余额充值