如何使用Lambda表达式在c#中选择多个变量

24 浏览
0 Comments

如何使用Lambda表达式在c#中选择多个变量

我有一个类名为'PersonnelVehicle'的对象,其结构如下所示:

public class PersonnelVehicle
{
    private Guid _personnelId;
    public Guid PersonnelId
    {
        get
        {
            return _personnelId;
        }
    }
    private int _Age;
    public int Age
    {
        get
        {
            return _Age;
        }
    }
    private string _personnelName;
    public string PersonnelName
    {
        get
        {
            return _personnelName;
        }
    }
}

我知道如何使用Lambda表达式获取单个元素,例如ObjectPersonnel.Select(x=>x.PersonnelId)。

1) 但是如何使用Lambda表达式从该对象中获取多个元素,即年龄和人员名称?

2) 另外,如果我有以下PersonnelVehicle的结构,

public class PersonnelVehicle
{
    public ObservableCollection Personnel_List = new ObservableCollection
    {
        new PersonnelModel{ID=Guid.NewGuid(),Name="Mr.Joe",Gender="Male",Hospital="Poly Clinic",EMPID="abc 123",Capabilities="123",Position="Assistant",Title="Test",Status="General",ICNumber="IC 123",Roles="Test"},
        new PersonnelModel{ID=Guid.NewGuid(),Name="Su Su",Gender="Female",Hospital="Clementi Clinic",EMPID="abc 1234",Capabilities="1234",Position="Security",Title="Test",Status="General",ICNumber="IC 1234",Roles="Test"},
        new PersonnelModel{ID=Guid.NewGuid(),Name="Ms Tan",Gender="Female",Hospital="Bishan Clinic",EMPID="abc 1235",Capabilities="1235",Position="HR",Title="Test",Status="General",ICNumber="IC 1235",Roles="Test"},
    };
}

如何以相同的方式获取所有ID和职位的列表?

注意:我只需要使用Lambda表达式,所以这与此链接中的问题不同:Linq Syntax - Selecting multiple columns

0
0 Comments

问题的出现的原因:

作者想要从Personnel_List中选择多个变量(ID和Gender),但不知道如何使用Lambda表达式来实现。

解决方法:

使用匿名类型来选择多个变量(ID和Gender)。

ObjectPersonnel.Select(x => new { x.PersonnelId, x.Age })

如果我有一个名为ObjectPersonnel的对象,其中包含一个Personnel_List,如下所示:

Personnel_List = new ObservableCollection

{

new PersonnelModel{ID=Guid.NewGuid(),Name="Mr.Joe",Gender="Male",EMPID="abc 123",Capabilities="123",Position="Assistant",Title="Test",Status="General",ICNumber="IC 123",Roles="Test"},

new PersonnelModel{ID=Guid.NewGuid(),Name="Su Su",Gender="Female",EMPID="abc 1234",Capabilities="1234",Position="Security",Title="Test",Status="General",ICNumber="IC 1234",Roles="Test"}

};

如何仅获取ID和Gender?

原文链接:http://msdn.microsoft.com/en-us/library/bb397696.aspx

0
0 Comments

问题的原因:在使用Lambda表达式选择多个变量时,需要对变量进行命名。

解决方法:在Lambda表达式中使用new关键字来创建一个匿名类型,并对每个变量进行命名。例如:ObjectPersonnel.Select(x=> new { PersonnelId = x.PersonnelId , Age = x.Age })

0