gpt4 book ai didi

c# - 使用 linq 过滤嵌套集合

转载 作者:太空狗 更新时间:2023-10-29 22:36:47 25 4
gpt4 key购买 nike

我有两个类,一个嵌套在另一个里面,

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 ;

这只是原始问题的修改版本。TIA。

最佳答案

试试这个。你可以通过使用 Where 这样的子句来获取制造商 不等于 的人的汽车 list

lstCars = person.CarsOwnedByHim.Where(x => x.ModelName.ToUpper() != "COROLLA").ToList();

你的整个代码应该是这样的

List<Person> lstPersons = new List<Person>();
foreach (var person in _result)
{
List<Car> lstCars = new List<Car>();
lstCars=person.CarsOwnedByHim.Where(x => x.ModelName.ToUpper() != "COROLLA").ToList();
person.CarsOwnedByHim = lstCars;
lstPersons.Add(person);

}
return lstPersons ;

关于c# - 使用 linq 过滤嵌套集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31308573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com