在LINQ中,可以使用GroupBy
操作符按时间跨度对数据进行分组。下面是一个使用LINQ的代码示例,按时间跨度分组订单列表的示例:
using System;
using System.Collections.Generic;
using System.Linq;
public class Order
{
public int OrderId { get; set; }
public DateTime OrderDate { get; set; }
public decimal TotalAmount { get; set; }
}
public class Program
{
public static void Main()
{
List orders = new List
{
new Order { OrderId = 1, OrderDate = new DateTime(2022, 1, 1), TotalAmount = 100 },
new Order { OrderId = 2, OrderDate = new DateTime(2022, 1, 15), TotalAmount = 200 },
new Order { OrderId = 3, OrderDate = new DateTime(2022, 2, 1), TotalAmount = 150 },
new Order { OrderId = 4, OrderDate = new DateTime(2022, 2, 15), TotalAmount = 250 },
new Order { OrderId = 5, OrderDate = new DateTime(2022, 3, 1), TotalAmount = 300 }
};
// 按月份分组
var ordersByMonth = orders.GroupBy(o => new { o.OrderDate.Year, o.OrderDate.Month });
// 遍历每个月份的订单
foreach (var group in ordersByMonth)
{
Console.WriteLine($"Month: {group.Key.Year}-{group.Key.Month}");
foreach (var order in group)
{
Console.WriteLine($"Order: {order.OrderId}, Amount: {order.TotalAmount}");
}
Console.WriteLine();
}
}
}
这个示例将订单列表按照月份进行分组,并输出每个月份的订单信息。运行结果如下:
Month: 2022-1
Order: 1, Amount: 100
Order: 2, Amount: 200
Month: 2022-2
Order: 3, Amount: 150
Order: 4, Amount: 250
Month: 2022-3
Order: 5, Amount: 300
可以根据需要修改代码来按照不同的时间跨度进行分组,例如按季度、年份等。
上一篇:按时间聚合行
下一篇:按时间框架包装数组值