私は LINQ を初めて使用します。上記のコードは問題なく実行されています。
しかし、最後の文で c.Quantity ではなく c.payload.Quantity と書かれている理由がわかりませんでした。
ググってみたところ、cの結果から取得したペイロードからQuantityという値が得られていることがわかりましたが、それはペイロードがfilterQueryの最終出力ということですか?
var orderData = new[]
{
new {OrderDate = new DateTime(2011,1,1,8,30,00), ItemID = "100", UnitPrice = 0.99, Quantity =5},
new {OrderDate = new DateTime(2011,1,1,8,31,00), ItemID = "200", UnitPrice = 3.99, Quantity =2},
new {OrderDate = new DateTime(2011,1,1,9,02,00), ItemID = "200", UnitPrice = 1.50, Quantity =1},
new {OrderDate = new DateTime(2011,1,1,9,07,00), ItemID = "100", UnitPrice = 4.10, Quantity =3}
};
var orders = orderData.ToPointStream(Application,ev=>PointEvent.CreateInsert(ev.OrderDate,ev),AdvanceTimeSettings.StrictlyIncreasingStartTime);
var filterQuery = from o in orders where o.Quantity>=2 select o;
(from o in filterQuery.ToIntervalEnumerable() where o.EventKind == EventKind.Insert
select new {o.StartTime,o.EndTime,o.Payload.Quantity}).Dump("Heading");