我有一堂课:
public class ShipmentInformation
{
public string OuterNo { get; set; }
public long Start { get; set; }
public long End { get; set; }
}
我有一个List<ShipmentInformation>
名为Results
.
然后我做:
List<ShipmentInformation> FinalResults = new List<ShipmentInformation>();
var OuterNumbers = Results.GroupBy(x => x.OuterNo);
foreach(var item in OuterNumbers)
{
var orderedData = item.OrderBy(x => x.Start);
ShipmentInformation shipment = new ShipmentInformation();
shipment.OuterNo = item.Key;
shipment.Start = orderedData.First().Start;
shipment.End = orderedData.Last().End;
FinalResults.Add(shipment);
}
我现在遇到的问题是,在每个分组项目中,我都有各种 ShipmentInformation,但起始编号可能不是按 x 顺序排列的。x 可以是 300 或 200,具体取决于传入的参数。为了说明我可以
- 开始 = 1,结束 = 300
- 开始 = 301,结束 = 600
- 开始 = 601,结束 = 900
- 开始 = 1201,结束 = 1500
- 开始 = 1501,结束 = 1800
因为我有这个跳转,所以我不能使用上面的循环来创建一个实例ShipmentInformation
并获取第一个和最后一个项目orderedData
以使用它们的数据来填充该实例。
我想要某种方法来识别跳跃 300 或 200 并创建 ShipmentInformation 的实例以添加到数据是连续的 FinalResults 中。
使用上面的示例,我将有 2 个 ShipmentInformation 实例,其起点为 1,终点为 900,另一个实例的起点为 1201,终点为 1800