使用DLinq选择& Distinct into new object

时间:2016-08-19 13:32:03

标签: c# linq

假设我有以下对象列表

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>();

此列表中包含必要的项目数。

我需要从此List中选择不同的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?

1 个答案:

答案 0 :(得分:0)

这是我的错。我正在谷歌搜索&#34; DLinq &#34;但不是&#34; 动态LinQ &#34;。实际上答案很简单:

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