在“选择”中创建项目数组

时间:2011-05-03 18:19:48

标签: c# linq

我有一个名为workOrders的XSD.EXE生成的类。该类的成员Items的类型为workOrdersWorkOrder[]。我想用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();

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

由于

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

你几乎是对的...以下可能有效:

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中都有一个项目,但这可能是正确的。