C# 对象初始值设定项中的Linq查询

C# 对象初始值设定项中的Linq查询,c#,linq,C#,Linq,我有以下代码试图初始化我正在实例化的订单的列表字段。我的问题是VisualStudio不喜欢最内部的LINQ查询;具体来说,它是在抱怨来自、i.Element(“OrderItems”)和选择 是否不可能以这种方式初始化对象,或者我只是做了一些不正确的事情?谢谢,康纳 var orderXml = XDocument.Load("FileTest\\orders.xml"); orderXml.Descendants("Order").Do(i => orderList.Add(new

我有以下代码试图初始化我正在实例化的
订单
列表
字段。我的问题是VisualStudio不喜欢最内部的LINQ查询;具体来说,它是在抱怨来自、
i.Element(“OrderItems”)
选择

是否不可能以这种方式初始化对象,或者我只是做了一些不正确的事情?谢谢,康纳

var orderXml = XDocument.Load("FileTest\\orders.xml");

orderXml.Descendants("Order").Do(i => orderList.Add(new Order()
{
    Customer = new Customer()
    {
        ID = new Guid(i.Element("Customer").Element("ID").Value)
    },

    OrderItems = new List<OrderItem>()
    {
        from current in i.Element("OrderItems")
        select new OrderItem() {
            Product = new Product()
            {
                ID = new Guid(current.Element("ID").Value),
                UnitPrice = current.Element("UnitPrice").Value.To<decimal>()
            },
            Quantity = current.Element("Quantity").Value.To<int>(),
            TotalPrice = current.Element("TotalPrice").Value.To<decimal>()
        }
    }
}));
var orderXml=XDocument.Load(“FileTest\\orders.xml”);
orderXml.substands(“Order”).Do(i=>orderList.Add(neworder())
{
客户=新客户()
{
ID=新Guid(i.Element(“客户”).Element(“ID”).Value)
},
OrderItems=新列表()
{
来自i.Element中的当前值(“订单项”)
选择新的OrderItem(){
产品=新产品()
{
ID=新Guid(当前的.Element(“ID”).Value),
单价=当前.Element(“单价”).Value.To()
},
数量=当前的.Element(“数量”).Value.To(),
TotalPrice=current.Element(“TotalPrice”).Value.To()
}
}
}));

使用对象初始值设定项为列表中的每个项目调用添加。但是,您不能直接提供
IEnumerable

考虑改用构造函数

 OrderItems = new List<OrderItem>(
    from current in i.Element("OrderItems")
    select new OrderItem() {
        Product = new Product()
        {
            ID = new Guid(current.Element("ID").Value),
            UnitPrice = current.Element("UnitPrice").Value.To<decimal>()
        },
        Quantity = current.Element("Quantity").Value.To<int>(),
        TotalPrice = current.Element("TotalPrice").Value.To<decimal>()
    }
 )
OrderItems=新列表(
来自i.Element中的当前值(“订单项”)
选择新的OrderItem(){
产品=新产品()
{
ID=新Guid(当前的.Element(“ID”).Value),
单价=当前.Element(“单价”).Value.To()
},
数量=当前的.Element(“数量”).Value.To(),
TotalPrice=current.Element(“TotalPrice”).Value.To()
}
)

使用对象初始值设定项为列表中的每个项目调用添加。但是,您不能直接提供
IEnumerable

考虑改用构造函数

 OrderItems = new List<OrderItem>(
    from current in i.Element("OrderItems")
    select new OrderItem() {
        Product = new Product()
        {
            ID = new Guid(current.Element("ID").Value),
            UnitPrice = current.Element("UnitPrice").Value.To<decimal>()
        },
        Quantity = current.Element("Quantity").Value.To<int>(),
        TotalPrice = current.Element("TotalPrice").Value.To<decimal>()
    }
 )
OrderItems=新列表(
来自i.Element中的当前值(“订单项”)
选择新的OrderItem(){
产品=新产品()
{
ID=新Guid(当前的.Element(“ID”).Value),
单价=当前.Element(“单价”).Value.To()
},
数量=当前的.Element(“数量”).Value.To(),
TotalPrice=current.Element(“TotalPrice”).Value.To()
}
)

Visual Studio在最内部的LINQ查询中到底不喜欢什么?是字体大小吗?Visual Studio在最内部的LINQ查询中到底不喜欢什么?是字体大小吗?很好,我甚至没有注意到这里使用了对象初始值设定项。很好,我甚至没有注意到这里使用了对象初始值设定项