LINQ投影结合日期和列表

时间:2013-12-12 16:32:42

标签: c# linq projection

我有一个包含价值和交易日期的对象列表。

DateTime Date { get ; set; }
double Value { get; set; }

我想获取新的分组对象,该对象将包含此特定日期的交易日期和值列表。

我可以检索列表和日期,但我不知道如何使用投影将它们转换为新对象。

var res1 = ExpenseList.Where(p => p.Date == Convert.ToDateTime("01-12-2013"))
                      .Select(p => p.Value)
                      .ToList();

DateTime res2 = ExpenseList.Where(p => p.Date == Convert.ToDateTime("01-12-2013"))
                           .Select(p => p.Date)
                           .FirstOrDefault();

我可能会发布一些混淆,我会发布图片以澄清

我在ExpenseList中设置了日期和值

What I have

我想要一个日期和值集合

What I need

2 个答案:

答案 0 :(得分:3)

要对特定日期的所有值进行分组,您需要使用GroupBy

var groups = ExpenseList.GroupBy(expense => expense.Date,
    expense => expense.Value);

答案 1 :(得分:0)

ExpenseList.Where(p => p.Date == Convert.ToDateTime("01-12-2013"))
           .Select(p => new MyObject {Date = p.Date, Value = p.Value})
           .ToList();

MyObject替换为您定义的实际类型。