我有两个类,其中一个嵌套在另一个类中,
class Person
{
public string Name;
public string SSN;
public List<Car> CarsOwnedByHim;
}
还有另一个类别的车
class Car
{
public string RegNo;
public string Make;
public string ModelName;
}
从一个
List<Person>
中,我希望过滤掉所有的汽车,比如 ModelName = "Corolla"。请注意,应该返回 person 实例,但在嵌套列表中只应过滤掉汽车。
下面的解决方案是可行的,但我正在寻找更优雅的解决方案。
List<Person> lstPersons = new List<Person>();
foreach (var person in _result)
{
List<Car> lstCars = new List<Car>();
foreach (var car in person)
{
if (car.ModelName != "Corolla")
lstCars.Add(car);
}
var tempPerson = person;
tempPerson.CarsOwnedByHim = lstCars;
lstPersons.Add(tempPerson);
}
return lstPersons ;
这只是原问题的修改版。谢谢您的关注。
var tempPerson = person;
不会复制实例?你正在替换原始 person 上的 car 列表。 - Blorgbeard