选择要从字典列出的所有对象值

时间:2014-05-06 08:57:30

标签: c# linq dictionary

我有这样的DTO:

public class OrderDraft
{
    public string FTPUser             { get; set; }
    public string AccountRef          { get; set; }
    public string SupplyFromWarehouse { get; set; }
    public string UsePriceband        { get; set; }

    public string DocumentDate        { get; set; }
    public string DateRequested       { get; set; }
    public string DatePromised        { get; set; }
    public string CustomerDocumentNo  { get; set; }

    public List<Line> Lines           { get; set; }

    public Address DeliveryAddress    { get; set; }
    public string ShippingChargeCode  { get; set; }
    public decimal ShippingFee        { get; set; }
}

我像这样创建了上面的字典:

Dictionary<string, OrderDraft> multiOrders 
    = new Dictionary<string, OrderDraft>();

现在我想从上面的List<OrderDraft>词典中返回multiOrders。为此,我尝试了以下方法:

  • return multiOrders.SelectMany(s => s.Value);
  • return multiOrders.SelectMany(s => s.Value).ToList<OrderDraft>;

我收到以下错误:

  

错误2方法的类型参数   “System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable,   System.Func&GT)”   无法从使用中推断出来。尝试指定类型参数   明确。

知道如何从List<T>

中检索所有值的Dictionary<String, T>

2 个答案:

答案 0 :(得分:6)

怎么样:

multiOrders.Values.ToList() 

答案 1 :(得分:0)

@nvoigt解决方案已经死了,但您也可以通过明确声明类型参数来处理警告:

return multiOrders.SelectMany<OrderDraft,OrderDraft>(s => s.Value).ToList<OrderDraft>;