Listresult = new List (); var statusSet = GetOrderStatusList().Where(o => o.InsideCode == state && o.StatusType == 10); List optSet = GetOrderOptList(); List orderSet = GetOrderList(); result = optSet.Join(orderSet, OH => OH.OrderID, O => O.OrderID, (OH, O) => new { OH, O }) .Join( statusSet, OHO => new { ActionMode = OHO.O.ActionMode, OrderStatus = OHO.OH.OrderStatus.ToInt() }, OSC => new { ActionMode = OSC.ActionMode, OrderStatus = OSC.StastusCode }, (OHO, OSC) => OHO.OH ).ToList();