Подтвердить что ты не робот

Как я могу присоединиться к двум спискам, используя linq или лямбда-выражения

У меня есть два списка List<WorkOrder> и List<PlannedWork> Я хотел бы присоединиться к двум спискам номера рабочего порядка, как описано ниже. Другими словами, у меня есть список запланированных работ, но мне нужно знать описание работы для workOrderNumber.

Я новичок как в выражениях linq, так и в лямбда-выражениях, и у меня пока нет моей головы, обернутой вокруг них.

class WorkOrder
{
    public int WorkOrderNumber { get; set; }
    public string WorkDescription { get; set; }
}

class PlannedWork
{
    public int WorkOrderNumber { get; set; }
    public DateTime ScheduledDate { get; set; }
}
4b9b3361

Ответ 1

Похоже, вы хотите что-то вроде:

var query = from order in workOrders
            join plan in plans
                 on order.WorkOrderNumber equals plan.WorkOrderNumber
            select new
            {
                order.WorkOrderNumber,
                order.Description,
                plan.ScheduledDate
            };

Ответ 2

Способ сделать это с использованием методов расширения, вместо синтаксиса запроса linq, будет следующим:

var results = workOrders.Join(plans,
  wo => wo.WorkOrderNumber,
  p => p.WorkOrderNumber,
  (order,plan) => new {order.WorkOrderNumber, order.WorkDescription, plan.ScheduledDate}
);

Ответ 3

 public class State
        {
            public int SID { get; set; }
            public string SName { get; set; }
            public string SCode { get; set; }
            public string SAbbrevation { get; set; }
        }

        public class Country
        {
            public int CID { get; set; }
            public string CName { get; set; }
            public string CAbbrevation { get; set; }
        }


 List<State> states = new List<State>()
            {
               new  State{  SID=1,SName="Telangana",SCode="+91",SAbbrevation="TG"},
               new  State{  SID=2,SName="Texas",SCode="512",SAbbrevation="TS"},
            };

            List<Country> coutries = new List<Country>()
            {
               new Country{CID=1,CName="India",CAbbrevation="IND"},
               new Country{CID=2,CName="US of America",CAbbrevation="USA"},
            };

            var res = coutries.Join(states, a => a.CID, b => b.SID, (a, b) => new {a.CName,b.SName}).ToList();