很新的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