迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

C# 中遍历字典的最佳方法

作者:迹忆客 最近更新:2024/01/03 浏览次数:

C# 中的字典是键值对的集合。它有点类似于英语字典,其中 key 代表一个单词,而 value 是其含义。在本文中,我们将研究迭代字典的不同方法。

出于表示目的,我们将在整篇文章中用以下 Dictionary 对象的定义。

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

现在,让我们看一下可用于遍历此字典的一些方法。


使用 for 循环迭代 C# 中的字典

for 循环方法简单明了,我们使用索引依次遍历字典。

using System;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    for (int index = 0; index < sample_Dict.Count; index++)
      System.Console.WriteLine(index + ":" + sample_Dict[index]);
  }
}

输出:

0:value_1
1:value_2
2:value_3

你会注意到,在定义 Dictionary 对象时,我们还指定了初始化列表。指定初始化程序列表时,请确保列表中的每个元素都具有唯一键,否则,将导致运行时异常。


使用 foreach 循环遍历 C# 中的字典

foreach 循环是我们可以选择的另一种方法。

using System;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    foreach (var entry in sample_Dict) System.Console.WriteLine(entry.Key + ":" + entry.Value);
  }
}

输出:

0:value_1
1:value_2
2:value_3

可以将上述方法视为 foreach 循环的惰性实现。我们还可以使用 KeyValuePair<TKey,TValue> 结构来实现 foreach 方法。

using System;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    foreach (var entry in sample_Dict) System.Console.WriteLine(entry.Key + ":" + entry.Value);
  }
}

输出:

0:value_1
1:value_2
2:value_3

使用 ParallelEnumerable.ForAll 方法迭代 C# 中的字典

当你遍历大型字典时,此方法会派上用场,因为它为字典中的每个键值对合并了多线程处理。

using System;
using System.Linq;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    /*User Code Here*/
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    sample_Dict.AsParallel().ForAll(entry => Console.WriteLine(entry.Key + ":" + entry.Value));
  }
}

输出:

0:value_1
1:value_2
2:value_3

在分析上述最佳方法时,我们需要考虑某些参数,其结果将是偶然的。循环方法简洁有效,但是在迭代大型字典时,就运行时复杂性而言,它变得不切实际。

这是 ParallelEnumerable.ForAll 方法出现的地方,因为它允许并发执行节省关键时间,这可能是设计某些应用程序时的重要因素。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

遍历 C# 中的列表

发布时间:2024/01/03 浏览次数:184 分类:编程语言

有 3 种主要方法可用于遍历 C# 中的列表,for 循环,foreach 循环和 Lambda 表达式。

C# 中的线程安全列表

发布时间:2024/01/03 浏览次数:103 分类:编程语言

可使用两种主要方法在 C# 中创建线程安全列表:ConcurrentBag 类,ConcurrentQueue 类和 SynchronizedCollection 类。

C# 从列表中删除元素

发布时间:2024/01/03 浏览次数:118 分类:编程语言

本文介绍如何从 C# 中的列表中删除元素的方法。它介绍了诸如 Remove(),RemoveAt()和 RemoveRange()之类的方法。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便