2016-08-19 58 views
0

新对象,假设我有以下对象选择和鲜明与的DLinq

public class OrderInfo 
{ 
    public string OrderNo {get; set;} 
    public DateTime OrderDate {get; set;} 
    public decimal OrderAmount {get; set;} 
    public decimal OrderPrice {get; set;} 
} 

的列表作为

List<OrderInfo> data = new List<OrderInfo>(); 

和这个名单中有物品的必要数量。

我需要从此列表中选择不同的OrderNo,OrderDate对。在Linq我可以写一个查询为:

var q = (from x in data 
     group x by new { x.OrderNo, x.OrderDate } 
     into grp 
     select new 
     { 
      grp.Key.OrderNo, 
      grp.Key.OrderDate 
     }).Distinct(); 

事情是我正在写一个泛型方法,以便对象类型和属性是未知的。所以我必须用DLinq写这个。

如果我有一个List<T>string[] { "OrderNo", "OrderDate" }的列表,我该如何在运行时将这个示例与DLinq一起使用?

+0

让那个对象从接口继承,然后设置类型约束类型必须从接口 –

+0

这将帮助不大inherhit,因为这是一个广义的方法,该方法应该以任何类型运行。而这些类型并不意味着有任何共同点。 – user3021830

回答

0

这是我的错。我是谷歌搜索“DLinq”,但不是“动态LinQ”。其实答案是很简单:

var q = data.Select("new (OrderNo, OrderDate)").Distinct();