你可以使用LINQ来按照DateTime的日期进行分组,并选择每组的第一个和最后一个值。以下是一个示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
// 创建一个包含DateTime的列表
List dates = new List()
{
new DateTime(2021, 1, 1),
new DateTime(2021, 1, 2),
new DateTime(2021, 1, 2),
new DateTime(2021, 1, 3),
new DateTime(2021, 1, 4),
new DateTime(2021, 1, 4),
new DateTime(2021, 1, 4)
};
// 使用LINQ按照日期进行分组,并选择每组的第一个和最后一个值
var result = dates.GroupBy(d => d.Date)
.Select(g => new
{
Date = g.Key,
FirstValue = g.First(),
LastValue = g.Last()
});
// 打印结果
foreach (var group in result)
{
Console.WriteLine($"Date: {group.Date}, First Value: {group.FirstValue}, Last Value: {group.LastValue}");
}
}
}
在上面的代码中,我们首先创建一个包含DateTime的列表。然后使用LINQ的GroupBy方法按照日期进行分组。在Select方法中,我们选择每个分组的键(Key),即日期,以及第一个和最后一个值。最后,我们遍历结果并打印每组的日期、第一个值和最后一个值。
运行上述代码将输出以下结果:
Date: 01/01/2021 00:00:00, First Value: 01/01/2021 00:00:00, Last Value: 01/01/2021 00:00:00
Date: 01/02/2021 00:00:00, First Value: 01/02/2021 00:00:00, Last Value: 01/02/2021 00:00:00
Date: 01/03/2021 00:00:00, First Value: 01/03/2021 00:00:00, Last Value: 01/03/2021 00:00:00
Date: 01/04/2021 00:00:00, First Value: 01/04/2021 00:00:00, Last Value: 01/04/2021 00:00:00
请注意,上述代码假设你已经有一个包含DateTime值的列表。如果你的情况不同,请根据你的需求修改代码。