我有一个由以下对象组成的列表
List<Person> PersonList
Person类
class Person
{
public int PersonId{get;set;}
public string PersonName{get;set;
public int Age {get;set;}
}
我有另一个列表,其中包含我感兴趣的年龄列表,如12,14,16,24等。
List<int> AgeList
我想将PersonList
的年龄与AgeList
和找到的IF中的年龄进行比较,将其存储在基于每个组的单独列表中。例如,属于12岁的人应该在不同的列表中,年龄14在不同的列表中等等......
答案 0 :(得分:1)
这是一些快速代码,没有LINQ。首先,您创建类型为Person
的新列表,然后循环遍历您的人员列表,并为每个人检查年龄是否与您年龄列表中的年龄相同。
List<Person> finalList=new List<Person>();
foreach (var a in PersonList)
{
foreach (var b in AgeList)
{
if (a.Age==b)
{
finalList.Add(a);
break;
}
}
}
答案 1 :(得分:1)
List<Person> data = new List<Person>();
List<int> ages = new List<int>();
List<Person> result = data.Where(p => ages.Contains(p.Age)).ToList();
答案 2 :(得分:1)
LINQ解决方案:
List<Person> personAgeList = PersonList.Where(p => AgeList.Contains(p.Age)).ToList();