我有以下查詢工作正常:通過聲明使用LINQ組作爲一個子查詢
var bands = new List<TimeBand>()
{
new TimeBand(){Region = 10,PeriodId = 5,StartDate = new DateTime(2013, 04, 01),EndDate = new DateTime(2014, 05, 31),DayName = "Friday",StartTime = "00:00",EndTime = "07:00"},
new TimeBand(){Region = 10,PeriodId = 5,StartDate = new DateTime(2013, 04, 01),EndDate = new DateTime(2013, 05, 31),DayName = "Friday",StartTime = "07:00",EndTime = "00:00"},
new TimeBand(){Region = 10,PeriodId = 4,StartDate = new DateTime(2013, 06, 01),EndDate = new DateTime(2013, 08, 31),DayName = "Saturday",StartTime = "20:00",EndTime = "00:00"}
};
var query = (from x in bands
group x by new {x.Region, x.DayName}
into grp
select new TimeBand()
{
Region = grp.Key.Region,
DayName = grp.Key.DayName,
StartDate = grp.Min(x => x.StartDate),
EndDate = grp.Max(x => x.EndDate)
}).ToList();
但正如我組按地區和DAYNAME我不會在我的結果讓另一列即開始時間和結果時間結束。
如果這是一個SQL查詢,我會在子查詢中使用這個分組結果,並獲取其他列。
有什麼辦法可以修改這個,所以我也得到了不屬於group by語句的屬性。
謝謝
'grp'實現了'IEnumerable <>',它具有所有的列。你現在根本沒有選擇它們。 –
@ 03Usr這是因爲不只有一個價值。序列中的每個項目表示一系列項目。你可以迭代*那*得到每個子項。然後,您可以從任何這些項目中提取列值。 – Servy
謝謝Servy/Tim S我已經調試過並看過它。 – 03Usr