8

最終日終値は翌日の始値となります。

私はこれを試しました

var k = INV_STOCKs.Select(x =>
    new DemoItemV1
    {
        AreaId = x.STOCK_DATE,
        CategoryTitle = x.STOCK_QTY
    })
    .AsEnumerable()
    .Select((x, i) => { x.ID = i + 1; return x })
    .ToList();

テーブル構造

ID,STOCK_DATE,STOCK_QTY

誰でもこれを解決するのを手伝ってください

このように印刷する必要があります

  Date         Opening Stock      Closing Stock
01/01/13                  0                  5
01/02/13                  5                 10
01/03/13                 10                 15
01/04/13                 15                 22
01/05/13                 22                 30

前もって感謝します。

4

2 に答える 2

3

「日付、始値、終値を印刷する必要があります」

INV_STOCKs.GroupBy(x=>x.STOCK_DATE).ForEach(group=>
{
   var g = group.OrderBy(x.ID);
   Print(g.First().STOCK_DATE); //Date
   Print(g.First().STOCK_QTY); //Opening stock
   Print(g.Last().STOCK_QTY); //Closing stock
});

Print は、この値を出力するメソッドです。もちろん、3つのパラメーターなどで1つのメソッドを使用できます:)

編集:リストに保存するには:

class StockStore
{
   public int OpeningStock;
   public int ClosingStock;
   public DateTime Date;
}

var list = new List<StockStore>();

INV_STOCKs.GroupBy(x=>x.STOCK_DATE).ForEach(group=>
{
   var g = group.OrderBy(x.ID);
   list.Add(new StockStore 
   {
       OpeningStock = g.First().STOCK_QTY,
       ClosingStock = g.Last().STOCK_QTY,
       Date = g.First().STOCK_DATE
   }); 
});
于 2013-07-26T12:50:27.990 に答える
0

これらの線に沿った何か。

    var lastStockItem = INV_Stocks
         .OrderByDescending(x=>x.StOCK_Date)
         .FirstorDefault();

これで、その日の最後の在庫品目が得られるはずです。

于 2013-07-26T12:33:54.550 に答える