我有以下课程
class MyClass
{
public int ActualAge {get;set;}
public int ReportedAge{get;set;}
}
我有一个上面类的填充集合,如下所示
List<MyClass> myClassList = new List<MyClass>
{
new MyClass { ActualAge= 10, ReportedAge =10},
new MyClass { ActualAge= 10, ReportedAge =30} ,
new MyClass { ActualAge= 20, ReportedAge =20},
new MyClass { ActualAge= 10, ReportedAge = 90}
};
现在面临的挑战是
AcutalAge == ReportedAge
然后(假设有另一个变量)
private List<int> Age
年龄变量应该等于ActualAge属性的集合,如果没有,那么Age变量应该等于ActualAge / ReportedAge的集合。
我想知道如何通过在C#中使用LINQ来实现这一点。
答案 0 :(得分:3)
如果Age
被声明为List<string>
您可以使用以下代码填充此列表
List<string> Age
Age = myClassList.Select(x => x.ReportedAge == x.ActualAge ?
x.ReportedAge.ToString() :
string.Format("{0}/{1}", x.ReportedAge, x.ActualAge)).ToList()
因此,您的列表将包含10
,12/13
,40
,15/18
答案 1 :(得分:2)
您想在'{}'
上执行“选择”,将每个项目的所需状态映射到您生成的myClassList
列表中。要在两者相等时仅显示Age
,请在ActualAge
中使用条件语句:
Select
答案 2 :(得分:0)
IList<string> Age = myClassList.Select(x => x.ActualAge == x.ReportedAge ? x.ActualAge + "/" + x.ReportedAge : x.ActualAge.ToString()).ToList()