Фильтрация коллекции объектов по идентификатору - PullRequest
0 голосов
/ 20 декабря 2010

Изучаю немного c #, и моя проблема в том, что у меня есть класс, который создает объекты Person и добавляет их в список (myPersonList).У меня также есть класс PartyGroup, который принимает PersonList в качестве одного из своих свойств.Моя проблема в том, что myPersonList содержит весь набор результатов, поэтому в данный момент каждый раз, когда он создает новую группу PartyGroup, он добавляет все значения в myPersonList.Есть ли способ сказать ему, чтобы добавить только те значения в myPersonList, где Person.PartyGroupId соответствует текущему идентификатору группы PartyGroup, с которым мы имеем дело.Надеюсь, что это имеет смысл.Спасибо.

// Персона

using (AseDataReader reader = commandPerson.ExecuteReader())

        {
            while (reader.Read())
            {
                Person person = new Person();
                person.PersonID = Convert.ToInt32(reader["person_id"]);
                person.PartyGroupID = Convert.ToInt32(reader["party_group_id"]);
                person.FullName = reader["full_name"].ToString();

                myPersonList.Add(person);
            }
        }

// PartyGroup

using (AseDataReader reader = commandPartyGroup.ExecuteReader())

        {
            while (reader.Read())
            {
                int groupId = Convert.ToInt32(reader["party_group_id"]);

                if (myPartyGroupList.Where(partyGroup => partyGroup.PartyGroupID == groupId).Any() == false) 
                {
                    PartyGroup partyGroup = new PartyGroup()
                    {
                        PartyGroupID = groupId,
                        PartyGroupName = reader["party_group_name"].ToString(),
                        PersonList = myPersonList//where PersonList objects contain this groupId???


                    };

                    myPartyGroupList.Add(partyGroup);

                }

            }

        }

1 Ответ

1 голос
/ 20 декабря 2010

Если я правильно понимаю вашу проблему, вам просто нужно:

PersonList = myPersonList.Where(p => p.PartyGroupID == groupId).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...