Как передать значения в список, которые существуют в другом классе

1

Это мои занятия

   public class Competitor
    {
        public string Team { get; set; }
        public string Win { get; set; }
    }

    public class CompetitorsClass
    {
        public int ActiveCompetitors { get; set; }
        public List<Competitor> Competitors { get; set; }
        public int TotalCompetitors { get; set; }
        public bool HasWinOdds { get; set; }
    }

    public class RootObject
    {
        public int EventID { get; set; }
        public int ParentEventID { get; set; }
        public string MainEvent { get; set; }
        public CompetitorsClass Competitors { get; set; }
        public string EventStatus { get; set; }
        public bool IsSuspended { get; set; }
        public bool AllowBets { get; set; }
    }

Здесь я передаю данные в класс Root. Как я могу передать ценности CompetitorsClass Competitors. Может ли кто-нибудь сказать мне, как это сделать, и любой пример, похожий на этот? Я знаю, что это может быть основной материал для большинства из вас, но я новичок в С# и учебе.

    var obj2 = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, RootObject>>>(json);

    foreach (var root in obj2)
    {
        int count = root.Value.Count;
        foreach (var child in root.Value)
        {
            RootObject ob = new RootObject();
            ob.EventID = child.Value.EventID;
            ob.EventStatus = child.Value.EventStatus;
            CompetitorsClass cs = new CompetitorsClass();
            cs.ActiveCompetitors = 0;
            cs.HasWinOdds = false;
            cs.TotalCompetitors = 2;

            //  cs.Competitors
            // cs.Competitors = ob.Competitors;

        }
    }
Теги:
oop

2 ответа

0
Лучший ответ

Есть два способа подойти к проблеме:

  1. Просто назначьте коллекцию, например:

    CompetitorsClass cs = new CompetitorsClass();
    cs.ActiveCompetitors = 0;
    cs.Competitors = myList; //or new List<Competitor>() if you don't have it yet.
    
  2. Перейдите в конструктор и назначьте:

    public class CompetitorsClass
    {
       public CompetitorsClass(List<Competitor> competitors)
       {
            Competitors = competitors;
       }
       ...
    }
    
    cs = new CompetitorsClass(myList);
    

Второй, как правило, предпочтителен, поскольку он гарантирует, что переменная была инициализирована, вместо того, чтобы полагаться на значение по умолчанию (в этом случае значение null).

Чтобы перейти к списку существующих участников, вы должны написать:

ob.Competitors.Competitors //This is "myList" in my examples
0

RootObject имеет свойства Competitors и это тип CompetitorsClass.

Вы можете использовать эти свойства:

cs.Competitors = ob.Competitors.Competitors;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню