在Select中创建项数组

本文关键字:数组 创建 Select | 更新日期: 2023-09-27 17:54:22

我有一个由XSD.EXE生成的类,称为workOrders。类有一个类型为workOrdersWorkOrder[]的成员Items。我想用LINQ填充workOrders

我不知道如何正确填充我的Items成员。这就是我需要帮助的地方:

        labels = result.AsEnumerable()//labels is of type workOrders
                    .Select(o => delegate()
                            {
                                new workOrders
                                {
                                    new Items
                                    {
                                        number = o.WorkOrder,
                                        Part = o.Part,
                                        Col3 = o.Col3,
                                        Qty = o.Quantity.ToString()
                                    }
                                };
                            }).ToList();

请注意,这段代码不起作用,可能是错误的。我这样写是为了传达我想要做的事情。

在更简单的情况下(没有成员数组),我已经能够通过

做到这一点
.Select(o => new workOrder
                        {
                              number = o.WorkOrder,
                              Part = o.Part,
                              Col3 = o.Col3,
                              Qty = o.Quantity.ToString()
                        }).ToList();

但是,在这种情况下,我不知道如何进行跳转。

谢谢

在Select中创建项数组

如果我理解正确的话,我认为你需要这样的东西:

labels = 
    new workOrders
    {
        Items = result.Select(o => new workOrder
                    {
                          number = o.WorkOrder,
                          Part = o.Part,
                          Col3 = o.Col3,
                          Qty = o.Quantity.ToString()
                    }).ToArray()
    };

你几乎是对的…

labels = (from item in result.AsEnumerable()//labels is of type workOrders
         select new workOrders
                {
                    Items = new workOrdersWorkOrder[]
                    {
                        {
                            number = item.WorkOrder,
                            Part = item.Part,
                            Col3 = item.Col3,
                            Qty = item.Quantity.ToString()
                        }
                    }
                }
           }).ToList();

还没有试过,但它可以工作:)。同样,这也取决于你所拥有的数据和你所期望的结果。上面的代码将创建一个列表workOrders,其中每个对象将在列表Items中有一个项目,但这可能是正确的。