股票数据在LINQ中结转到第二天

本文关键字:第二天 LINQ 数据 | 更新日期: 2023-09-27 18:25:13

最后一天的收盘股票应该是第二天的开盘股票价值。

我试过这个

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,库存日期,库存数量

请任何人都能帮助解决这个

我需要像这个一样打印

  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

提前谢谢。

股票数据在LINQ中结转到第二天

"我需要打印日期、期初库存、期末库存"

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
});

打印是一种打印这个值的方法,当然你可以使用一种带有3个参数的方法:)

编辑:将其存储在列表中:

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
   }); 
});

沿着这些线的东西。

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

这应该能让你买到当天的最后一件存货。