Looking for .net Keywords? Try Ask4Keywords

.NET Framework Создание инициализированного списка с использованием пользовательских типов


пример

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

Здесь у нас есть класс без конструктора с двумя свойствами: Name и nullable boolean property Selected . Если мы хотим инициализировать List<Model> , для его выполнения существует несколько разных способов.

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"}
 };

Здесь мы создаем несколько new экземпляров нашего класса Model и инициализируем их данными. Что делать, если мы добавили конструктор?

public class Model
{

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

Это позволяет нам немного инициализировать наш список.

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

Что относительно класса, в котором одним из свойств является сам класс?

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

Обратите внимание, что мы вернули конструктор класса Model чтобы немного упростить пример.

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

Обратите внимание, что мы можем поменять наш List<ExtendedModel> с помощью Collection<ExtendedModel> , ExtendedModel[] , object[] или даже просто [] .