-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);

インデックス0、1、2System.Drawing.Colorの辞書から情報を取得するにはどうすればよいですか?Channel1

4

4 に答える 4

3

エントリが辞書から欠落していることがエラーであるかどうかに応じて、2つの異なるオプションがあります。それがバグを表す場合は、インデクサーを使用してフェッチできます。

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の回答は、キーが辞書に存在しない可能性に対処するための2つのオプションを示しているため、関連性があります。

于 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 に答える