C# LINQ Pivot
public void TestLinqPivot(){var before = new []{new {Ticker="FB", Type="BID", Value=1},new {Ticker="FB", Type="ASK", Value=11},new {Ticker="IBM", Type="BID", Value=2},new {Ticker="IBM", Type="ASK", Value=22}};Console.WriteLine("Ticker,Type,Value");foreach (var item in before){Console.WriteLine("{0},{1},{2}", item.Ticker, item.Type, item.Value);}var after = before.GroupBy(x => x.Ticker).Select(x => new{Ticker = x.Key,BID = x.Where(y => y.Type.Equals("BID")).Sum(y => y.Value),ASK = x.Where(y => y.Type.Equals("ASK")).Sum(y => y.Value)});Console.WriteLine();Console.WriteLine("Ticker,BID,ASK");foreach (var item in after){Console.WriteLine("{0},{1},{2}", item.Ticker, item.BID, item.ASK);}}
Ticker,Type,ValueFB,BID,1FB,ASK,11IBM,BID,2IBM,ASK,22Ticker,BID,ASKFB,1,11IBM,2,22
Comments
Post a Comment