.NET Framework Création d'une liste initialisée avec des types personnalisés


Exemple

public class Model
{
    public string Name { get; set; }
    public bool? Selected { get; set; }
}

Nous avons ici une classe sans constructeur avec deux propriétés: Name et une propriété booléenne nullable Selected . Si nous voulions initialiser une List<Model> , il y a plusieurs manières d'exécuter ceci.

var SelectedEmployees = new List<Model>
 {
      new Model() {Name = "Item1", Selected = true},
      new Model() {Name = "Item2", Selected = false},
      new Model() {Name = "Item3", Selected = false},
      new Model() {Name = "Item4"}
 };

Ici, nous créons plusieurs new instances de notre classe Model et les initialisons avec des données. Et si on ajoutait un constructeur?

public class Model
{

    public Model(string name, bool? selected = false)
    {
        Name = name;
        selected = Selected;
    }
    public string Name { get; set; }
    public bool? Selected { get; set; }
}

Cela nous permet d’initialiser notre liste un peu différemment.

var SelectedEmployees = new List<Model>
{
    new Model("Mark", true),
    new Model("Alexis"),
    new Model("")
};

Qu'en est-il d'une classe dont l'une des propriétés est une classe elle-même?

public class Model
{
    public string Name { get; set; }
    public bool? Selected { get; set; }
}

public class ExtendedModel : Model
{
    public ExtendedModel()
    {
        BaseModel = new Model();
    }

    public Model BaseModel { get; set; }
    public DateTime BirthDate { get; set; }
}

Notez que nous avons annulé le constructeur de la classe Model pour simplifier un peu l'exemple.

var SelectedWithBirthDate = new List<ExtendedModel>
{
    new ExtendedModel()
    {
        BaseModel = new Model { Name = "Mark", Selected = true},
        BirthDate = new DateTime(2015, 11, 23)
    },
                    new ExtendedModel()
    {
        BaseModel = new Model { Name = "Random"},
        BirthDate = new DateTime(2015, 11, 23)
    }
};

Notez que nous pouvons échanger notre List<ExtendedModel> avec Collection<ExtendedModel> , ExtendedModel[] , object[] , ou même simplement [] .