【问题标题】:Generics in C#, Dictionary<TKey,TValue>C# 中的泛型,字典<TKey,TValue>
【发布时间】:2011-10-28 06:57:44
【问题描述】:

我开始深入阅读 C#。现在我正处于泛型的旅程中。我在本书中遇到了第一个泛型示例:

static Dictionary<string,int> CountWords(string text)
{
   Dictionary<string,int> frequencies;
   frequencies = new Dictionary<string,int>();
   ... //other code goes here..

在这段代码之后,作者说:

The CountWords method first creates an empty map from string to int 

这对我来说似乎很模糊,作为 C# 的新手,作者试图表达的意思是什么 string to int(在上面的声明中)?我对这条线有点困惑。

提前致谢。

【问题讨论】:

  • 也许@Jon Skeet 想回答自己;)
  • @TimSchmelter:哦,我猜他现在可能正在回答其他一些 C# 问题;)
  • 我认为其他答案现在已经涵盖了它。

标签: c# generics


【解决方案1】:

假设我们要计算段落中的单词:

我开始深入阅读 C#。现在我正处于泛型的旅程中。 我在本书中遇到了第一个泛型示例

为了计算单词,您需要一些能够存储每个单词出现次数的数据结构,它基本上会将一个数字附加到一个字符串,例如

我 - 3次
在 - 3 次
泛型 - 2 次 等等……

该结构将字符串映射到整数,在 C# 泛型中,该结构是 Dictionary&lt;string,int&gt;

顺便说一句,如果您是 C# 初学者,我会建议您深入阅读 C#,虽然它是一本很棒的书,但假设您是一个相当高级的读者。

【讨论】:

  • 嗯,我很喜欢那本书 :) 作为参考,我有 C# 简而言之。我可以应付! :)
【解决方案2】:

他的意思是string是你的key,int是与key配对的值​​。

【讨论】:

    【解决方案3】:

    Dictionary&lt;string,int&gt;string 键(或查找)映射到 int 值。

    【讨论】:

      【解决方案4】:

      考虑Dictionary&lt;string,int&gt; frequencies
      当您尝试添加您使用的项目时(例如)

      frequencies.Add("key3", 3)
      

      当您添加另一个项目时,您不能重复“key3”,因为在Dictionary 中这是一个唯一键;所以你创建了一个“地图”,因为你确定你有唯一的键,你可以使用它们的键来调用值:frequencies["key3"]...

      Dictionary<string, int> frequencies = new Dictionary<string, int>();
      frequencies.Add("key3", 3);
      frequencies.Add("key4", 4);
      frequencies.Add("key3", 5); // This raises an error
      
      int value = frequencies["key3"];
      

      【讨论】:

        【解决方案5】:

        此函数计算给定字符串中的所有单词。在返回的字典中,每个找到的词都存在一个以该词为键的条目。在 int 值存储中,这个词在字符串中被找到了多少次。

        【讨论】:

          【解决方案6】:

          意思是从KeyValue

          【讨论】:

            猜你喜欢
            • 2021-06-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-14
            相关资源
            最近更新 更多