LINQ选择对象

时间:2015-01-16 14:15:27

标签: c#

如何将LINQ选择的结果打包成多个对象?使用以下select子句:

  select new {
        Person = new Person((String)al.Element("firstName"), (String)al.Element("lastName")),
        TimePeriod = new TimePeriod((String)al.Element("start"), (String)al.Element("end"))     
    };

在上面的示例代码段中,Person和TimePeriod是完全未释放的对象。来自Scala背景,如果将结果装入元组,我会很高兴的。由于我是C#的新手,有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:5)

如果您想将它们放入Tuple,则可以执行此操作

select Tuple.Create(new Person(...), new TimePeriod(...));

但建立自己的班级

更合适
public class PersonAndTime
{
    public PersonAndTime(Person person, TimePeriod timePeriod)
    {
        Person = person;
        TimePeriod = timePeriod;
    } 
    public Person Person{ get; private set; }
    public TimePeriod TimePeriod {get; private set; }
}

并且这样做

select new PersonAndTime(new Person(...), new TimePeriod(...));

如果您不需要将查询结果传入或传出方法,那么将其留在匿名类中应该没问题。