#c# #list #oop
#c# #Список #ооп
Вопрос:
Ниже приведен мой класс со свойством списка псевдонимов типа класса (MeetingAliases). Как добавить несколько элементов в псевдонимы и передать в качестве параметра вместе с другими данными свойства TSGetRootObject некоторому методу. например.
TSGetRootObject ts = new TSGetRootObject();
ts.aliases ???? //How to add data list here
ts.name = id;
ts.service_type = srvtype;
ts = TransfomationSrv.PostData(ts);
public class TSGetRootObject
{
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public List<MeetingAliases> aliases { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public bool? allow_guests { get; set; }
}
public class MeetingAliases
{
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string alias { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string conference { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string description { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public int? id { get; set; }
}
Комментарии:
1. Что-то вроде этого:
ts.aliases = new List<MeetingAliases>(); ts.aliases.Add(new MeetingAliases());
2. как добавить данные в свойство MeetingAliases.
Ответ №1:
ts.aliases = new List<MeetingAliases>();
ts.aliases.Add(new MeetingAliases
{
alias = "Some text",
conference = "Other text"
});
Я бы рекомендовал вам взглянуть на инициализатор объекта
Вы также можете инициализировать aliases
список в конструкторе TSGetRootObject
:
public class TSGetRootObject
{
public TSGetRootObject
{
aliases = new List<MeetingAliases>();
}
//Or in c# 6.0 or higher:
public List<MeetingAliases> aliases { get; set; } = new List<MeetingAliases>();
}
Комментарии:
1. Обратите внимание, что второй пример инициализатора доступен только с C # 6
2. @GeoffJames — правильно 🙂 добавит комментарий. Спасибо
3. Спасибо @GeoffJames
Ответ №2:
Одним из вариантов, как вы можете это сделать, было бы:
Добавьте конструктор туда TSGetRootObject
, где вы инициализируете List
. Затем добавьте новый объект MeetingAliases
к TSGetRootObject
объекту:
TSGetRootObject ts = new TSGetRootObject();
ts.aliases.Add(new MeetingAliases {
alias = "alias",
conference = "conference",
description = "description",
id = 1
});
ts.name = id;
ts.service_type = srvtype;
ts = TransfomationSrv.PostData(ts);
public class TSGetRootObject
{
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public List<MeetingAliases> aliases { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public bool? allow_guests { get; set; }
public TSGetRootObject(){
aliases = new List<MeetingAliases>();
}
}
public class MeetingAliases
{
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string alias { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string conference { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string description { get; set; }
[DataMember]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public int? id { get; set; }
}