很新的LINQ的,和我与这一个挣扎。基本上我有一个“工人”的集合,每个对象本身都包含一个“WorkerOperatorAssignments”集合,每个对象都包含一个“运算符”对象。使用LINQ to对象,以得到一个对象深层次
工人(集合) - > WorkerOperatorAssignments(集合) - > 操作(对象)
我想返回在使用LINQ某些情况下,操作员记录。我见到目前为止如下:
Operator TillLogin = WorkersCollection.Where(w =>
w.WorkerOperatorAssignments.Any(a =>
a.Operator.TypeCode == OperatorTypeCode.TillOperator)
);
但这显然返回一个包含操作记录按照where子句工人的集合。在这种情况下,我该如何返回实际的操作员记录?
更新:
谢谢大家的答案,帮了我一大堆。我已经修改了我的全部查询:
Operator TillLogin = Response.Payload.Party.Workers
.SelectMany(w => w.WorkerOperatorAssignments)
.Select(a => a.Operator)
.Where(o => o.TypeCode.Trim() == OperatorTypeCode.TillOperator)
.SingleOrDefault();
绝对的天才,你救了我的理智!非常感谢。我会将此标记为答案,因为我相信你是第一个答案。尽管所有其他答案也很好。 – eyeballpaul 2011-12-14 16:19:47