我有一个颜色词典,如下所示。
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);
如何从索引0,1,2的System.Drawing.Color
字典中获取Channel1
信息?
答案 0 :(得分: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
}
答案 1 :(得分:2)
这样的事情:
List<Color> listForChannel1 = channelColorInformation["Channel1"];
Color c1 = listForChannel1[0];
Color c2 = listForChannel1[2];
Color c3 = listForChannel1[3];
<强>更新强>
@Jon的回答也是相关的,因为它显示了两个选项来处理字典中不存在密钥的可能性。
答案 2 :(得分:0)
var result = channelColorInformation["Channel1"]
答案 3 :(得分:0)
每个列表元素都是List<Color>
个实例,因此您可以使用indexer来访问单个项目:
List<Color> channel = channelColorInformation["Channel1"];
Color index0 = channel[0];
Color index1 = channel[1];
// etc.