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

时间:2014-08-08 01:00:50

标签: c# lambda

我有一个类'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表达式从此对象获取Age和PersonnelName?

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

public class PersonnelVehicle
{
public ObservableCollection<PersonnelModel> Personnel_List = new    ObservableCollection<PersonnelModel>
        {
             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

2 个答案:

答案 0 :(得分:2)

使用anonymous type

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

答案 1 :(得分:0)

你需要在那里命名变量吗?

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