[C#]System.Drawing.ColorのListを初期化する方法

C#で、Colorクラスを要素に持つListをまとめて初期化したい場合があります。このような場合、下記のコードで宣言と初期化を一度に行えます。
Colorクラスはコンストラクタで色指定できないので、FromArgb()などのメソッドを使ってインスタンス生成します。

using System.Drawing;
 
public class SomeClass {
    public List<Color> colorList = new List<Color>{ 
                                        Color.FromArgb(255, 255,255,0),
                                        Color.Red,
                                        Color.Blue,
                                        Color.Yellow };
}



定数にしたい場合は、constをつけておけばOKです。

public List<Color> ...public const List<Color> ...




Listで無く配列を初期化したい時は、以下のような感じです。

using System.Drawing;
 
// 一旦Colorの配列を作る
Color[] colorArray = { Color.Red, 
                       Color.Blue,
                       Color.FromArgb(255,255,128,128),};





また、ちょっと話がずれますが、あらかじめ用意されたColorの配列を、Listに一括代入したい時はAddRange()を使用します。

using System.Drawing;
 
// 一旦Colorの配列を作る
Color[] colorArray = { Color.Red, 
                       Color.Blue,
                       Color.FromArgb(255,255,128,128),};
 
// List<Color>を、あらかじめ定義されたColorの配列で初期化
List<Color> colorList = new List<Color>();
colorList.AddRange(colorArray);



上記のコードをもう少し端折ると、以下のような感じになります。

// List<Color>を、ワークの配列変数を用意せず初期化
List<Color> colorList2 = new List<Color>();
colorList2.AddRange( new Color[] { 
                        Color.Red, 
                        Color.Blue, });



基礎からきちんと知りたい人の C#プログラミング入門

関連記事

コメントを残す

メールアドレスが公開されることはありません。