-1

我有一个颜色字典,如下所示。

Dictionary<string, List<System.Drawing.Color>> channelColorInformation = 
    new Dictionary<string, List<System.Drawing.Color>>();

List<System.Drawing.Color> colorInfo = new List<System.Drawing.Color>();

System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml("#FFF0F8FF");
colorInfo.Add(color);
color = System.Drawing.ColorTranslator.FromHtml("#FFFAEBD7");
colorInfo.Add(color);
color = System.Drawing.ColorTranslator.FromHtml("#FF00FFFF");
colorInfo.Add(color);
channelColorInformation.Add("Channel1", colorInfo);

如何System.Drawing.Color从字典中获取Channel1索引 0、1、2 的信息?

4

4 回答 4

3

有两种不同的选项,具体取决于字典中缺少条目是否错误。如果这代表一个错误,您可以使用索引器获取它:

List<Color> colors = channelColorInformation["Channel1"];
// Access the list in the normal way... either with an indexer (colors[0])
// or using foreach

如果键“Channel1”没有条目,这将引发异常。

否则,使用TryGetValue

List<Color> colors;
if (channelColorInformation.TryGetValue("Channel1", out colors))
{
    // Use the list here
}
else
{
    // No entry for the key "Channel1" - take appropriate action
}
于 2012-08-02T17:46:56.397 回答
2

像这样的东西:

List<Color> listForChannel1 = channelColorInformation["Channel1"];
Color c1 = listForChannel1[0];    
Color c2 = listForChannel1[2];    
Color c3 = listForChannel1[3];

更新

@Jon 的回答也很重要,因为它显示了两个选项来处理字典中不存在密钥的可能性。

于 2012-08-02T17:46:17.790 回答
0
var result = channelColorInformation["Channel1"]
于 2012-08-02T17:46:07.080 回答
0

每个列表元素都是一个List<Color>实例,因此您可以使用索引器访问单个项目:

List<Color> channel = channelColorInformation["Channel1"];
Color index0 = channel[0];
Color index1 = channel[1];
// etc.
于 2012-08-02T17:47:27.853 回答