2013-07-26 27 views
8

Cổ phiếu đóng cửa ngày cuối cùng phải là giá trị cổ phiếu mở của ngày hôm sau.Dữ liệu chứng khoán chuyển sang ngày hôm sau trong LINQ

Tôi đã thử

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

cấu trúc Bảng này

ID, STOCK_DATE, STOCK_QTY

Hãy bất cứ ai có thể giúp giải quyết này

tôi cần in như

này
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 

Cảm ơn trước.

+0

gì đó không ổn với những gì bạn đã cố gắng? – Arran

+1

Truy vấn này không giống như được liên kết với câu hỏi. Hãy giải thích vấn đề của bạn. Đối với tôi nó không rõ ràng lắm. – wudzik

+0

@wudzik Tôi cần in Ngày, mở kho, đóng cổ phiếu trong đó –

Trả lời

3

"Tôi cần in ngày, mở cổ phiếu, đóng cửa cổ phiếu trong đó"

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

In là một số phương pháp in ấn cho bạn giá trị này, tất nhiên bạn có thể sử dụng một phương pháp với 3 paramameters hoặc bất cứ điều gì:)

EDIT: để lưu trữ nó trong danh sách:

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

tôi không cần in. Tôi cần danh sách chứa toàn bộ dữ liệu theo định dạng được yêu cầu. –

+0

đã chỉnh sửa, giờ đây bạn đã mở/đóng kho lưu trữ trong danh sách – wudzik

+0

nhờ @wudzik, nó thực sự hiệu quả. Bạn rất hữu ích, chúa ban phước cho bạn. –

0

Điều gì đó dọc theo các dòng này.

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

Điều đó sẽ giúp bạn có được món hàng cuối cùng trong ngày.

Các vấn đề liên quan