如果給定具有日期和小數的對象列表,我希望按日期的年份,月份,日期和小時爲這些對象編制索引。在.NET 2.0中,我將使用一組嵌套字典和一個列表作爲葉節點創建此圖。我對如何用LINQ完成這項工作感興趣。如何爲對象集合創建嵌套的LINQ分組/查找
0
A
回答
1
你的意思是這樣嗎?
var grouping = from item in myList
group item by new { item.Date.Year, item.Date.Month, item.Date.DayOfWeek, item.Date.Hour }
into groupedItems
select groupedItems;
1
讓我們假設你有DateTime和十進制屬性的類...
public class SomeThingWithDateAndDecimal
{
public DateTime SomeDate { get; set; }
public decimal SomeDecimal { get;set; }
}
如果我是你,我會爲你的鑰匙像這樣一類...
public class IndexKey
{
public int Year { get; set; }
public int Month { get; set; }
public DayOfWeek DayOfWeek { get; set; }
public int Hour { get; set; }
public IndexKey(DateTime dt)
{
Year = dt.Year;
Month = dt.Month;
DayOfWeek = dt.DayOfWeek;
Hour = dt.Hour;
}
然後從您的列表中做這樣的事情...
public static void Main()
{
var l = new List<SomeThingWithDate>();
//Fill the list with stuff...
var indexed = l.ToLookup(o => new IndexKey(o.SomeDate));
}
這不是嵌套的,但是你可以用嵌套字典做任何事情,你可以用這個結構來做。有些東西你很難做的嵌套字典變得更簡單,如部分密鑰查找,即「獲取所有的值與小時== 2」。
相關問題
- 1. LINQ嵌套集合
- 2. 如何使用LINQ創建嵌套的分組字典?
- 3. 如何創建嵌套的JavaScript對象
- 4. 遍歷集合並創建一個嵌套的對象
- 5. Linq嵌套分組
- 6. 查找和嵌套對象
- 7. 迭代集合時創建嵌套對象
- 8. Linq查詢,如何從單個表構建嵌套對象
- 9. LINQ - 從嵌套集合
- 10. LINQ嵌套多個集合
- 11. 合併集合在Laravel嵌套對象
- 12. 使用LINQ查找嵌套集合中的值
- 13. 嵌套集合LLS的ItemsSource與分組
- 14. LINQ:如何將嵌套的分層對象轉換爲扁平對象
- 15. 嵌套bean:對象內的集合
- 16. JSON與Spring的嵌套集合對象
- 17. 嵌套的對象和集合大小
- 18. 查找一個嵌套組對象的對象,並刪除它
- 19. 與Linq的嵌套分組?
- 20. 如何從嵌套對象構建嵌套數組?
- 21. LinQ嵌套收集查詢
- 22. Linq到對象嵌套組 - 由
- 23. 用swift創建嵌套對象數組的json對象
- 24. LINQ將多列與嵌套集合分組
- 25. 如何使用Hibernate創建具有嵌套對象的對象?
- 26. LINQ:分組集合
- 27. 如何將此嵌套集SQL查詢轉換爲LINQ查詢?
- 28. 按對象數組嵌套數組中的值查找 - 大數據集
- 29. 嵌套的Linq創建多個類對象
- 30. Linq to SQL嵌套對象
使用匿名類型意味着您不能將此分組傳遞給任何其他類或函數。我認爲最好爲你的密鑰創建一個特定的類,這樣分組可以用於項目範圍... – 2010-05-20 16:12:06
真的,你不能傳遞它,但我會留下創建該類,直到我知道我需要傳遞它。如果不知道它是否將用作LinqToSql查詢的一部分,我也會猶豫是否將它用作密鑰的替換。 – 2010-05-20 16:37:06
完美的作品。我目前不需要傳遞它,但我會記住spec index類以備將來參考。 – 2010-05-20 17:03:09