首页 > 解决方案 > 如何显示/输出/操作字典的内容?

问题描述

我需要根据我在控制台中输入List的 a 来显示 a ,如果它也超出了控制台中给定的输入范围,则会显示错误消息。Dictionaryint keythrow

public class Channel
{
    const string displayChannel = "{0},{1},{2}";

    private Dictionary <int, string> ChannelLookup = 
    new Dictionary <int, string> ()
    {
        {1, new List<string>{"[A]","[B]","[C]"}},
        {2, new List<string>{"[A]"}
    };

    public string channelDisplay (int val)
    {
        if (!ChannelLookup.ContainsKey(val))
        {
            // throw exception
        }
        else
        {
            string display = string.Format(displayChannel, ChannelLookup[val]);
            return display;
        }
    }
}

System.Format.Exception:'Index(zerobased) 必须大于或等于零且小于参数列表的大小。

标签: c#listdictionary

解决方案


仅出于完整性考虑:有时我使用Aggregate而不是Join,因为它可以为您提供更多控制权。

var values = ChannelLookup[val].Values;
var display = values.Aggregate((a, b) => $"{a}, {b}");

要使用 Linq 函数Aggregate,您需要添加System.Linq到 using 指令。


推荐阅读