【问题标题】:How to turn a dictionary<string, int> elements into strings. c#如何将字典<string, int> 元素转换为字符串。 C#
【发布时间】:2017-09-21 08:29:27
【问题描述】:

我目前正在开发一款可以在高分页面上显示前 5 名高分的游戏。

目前我有一个 [string, int] 类型的字典,它将分别存储用户的姓名和分数。但是,我无法创建一个方法,该方法将采用 {"name" 格式的所有 5 个字典元素, 20} 并将每个元素分配给一个字符串。

例如,字典元素[0] 包含值 {sam, 20}。我想将此元素分配给一个字符串,该字符串将显示为“sam 20”。

目前我有一个方法可以返回前 5 个高分,但是当将这些值从字典元素转换为字符串时会出现问题。

我们将不胜感激,如果您有任何问题,请随时提出。

提前致谢。

【问题讨论】:

  • 到目前为止你尝试过什么?你在哪里失败了?
  • 一个元素是一个KeyValuePair&lt;,&gt;,所以你可以得到一个字符串的键和一个int的值...你问如何连接一个字符串和一个int?

标签: c# string algorithm dictionary int


【解决方案1】:

您可以使用.Select() 和字符串插值来构建投影字符串列表:

var formattedStrings = dict
                           .OrderByDescending(x => x.Value)
                           .Select(x => $"{x.Key} {x.Value}").ToList();

由于 Dictionary&lt;TKey, TValue&gt; 实现了 IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;,我们可以轻松地使用 LINQ 对我们的键/值对进行排序和投影,然后再将它们插入新字符串。

这还允许在投影列表之前进行更灵活的查询。

【讨论】:

  • 假设他们可能是他们订购的,在Select之前输入.OrderByDescending(x =&gt; x.Value)
  • 这是完美的,是的@MattBurland 我已经用这种方法订购了字典,谢谢大家的回答!
【解决方案2】:

试试这个。

var answer= string.Join(",", map.Select(s => s.Key + " " +s.Value).ToArray());

【讨论】:

    猜你喜欢
    • 2011-05-07
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2014-09-02
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多