You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于LINQ实现相似预订日期范围分组的功能求助

业务分组需求与LINQ解决方案请求

核心需求

实现Group方法,输入为IEnumerable<Booking>类型,输出为IEnumerable<BookingGrouping>类型。分组规则:将每日预订按项目与分配额度完全一致的标准,划分成连续的日期范围组,每个组内的所有日期对应的预订项目和分配额度完全相同。

示例数据

(此处需补充具体输入输出示例,例如:
输入示例:

日期项目分配额度
2024-01-01A10
2024-01-02A10
2024-01-03B15
2024-01-04B15
2024-01-05A10

预期输出示例:
3个分组:

  1. 日期范围2024-01-01至2024-01-02,对应项目A、额度10
  2. 日期范围2024-01-03至2024-01-04,对应项目B、额度15
  3. 日期范围2024-01-05至2024-01-05,对应项目A、额度10)

相关类定义

BookingGrouping.cs 代码

// 请补充完整类定义,示例结构参考:
public class BookingGrouping
{
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public IEnumerable<BookingGroupingItem> Items { get; set; }
}

BookingGroupingItem.cs 代码

// 请补充完整类定义,示例结构参考:
public class BookingGroupingItem
{
    public string Project { get; set; }
    public int Allocation { get; set; }
}

Booking.cs 代码

// 请补充完整类定义,示例结构参考:
public class Booking
{
    public DateTime Date { get; set; }
    public string Project { get; set; }
    public int Allocation { get; set; }
}

已尝试的未完成代码

// 请补充你编写的部分代码,示例参考:
public IEnumerable<BookingGrouping> Group(IEnumerable<Booking> bookings)
{
    var sortedBookings = bookings.OrderBy(b => b.Date);
    var groupedByProjectAndAllocation = sortedBookings.GroupBy(b => new { b.Project, b.Allocation });
    // 连续日期范围的分组逻辑未完成
    ...
}

解决方案要求

基于LINQ实现完整的分组逻辑,准确识别连续日期范围内的相同项目与分配额度组合,输出符合BookingGrouping结构的结果。

内容的提问来源于stack exchange,提问作者Tahir Aziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 03:58:38