私はクラスを持っています:
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に追加する方法が必要です。
上記の例を使用すると、開始が1で終了が900のShipmentInformationのインスタンスが2つあり、開始が1201で終了が1800の別のインスタンスがあります。