自学一些c#,我的问题是我有一个创建Person对象的类并将它们添加到List(myPersonList)。我还有一个PartyGroup类,它将PersonList作为其属性之一。我的问题是myPersonList包含整个结果集,因此每当它创建一个新的PartyGroup时,它会添加myPersonList中的所有值。有没有办法告诉它只在myPersonList中添加那些值,其中Person.PartyGroupId与我们正在处理的当前PartyGroup groupID匹配。希望有道理。感谢。
//人
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);
}
}
}
答案 0 :(得分:1)
如果我理解你的问题,你只需要:
PersonList = myPersonList.Where(p => p.PartyGroupID == groupId).ToList();