我有兩個詞典。我正在存儲一個指定時間的值。現在我想在處理它時更加細化。我想比較一下這兩本詞典是否具有相同的月份和年份,與日期無關。我怎麼可能做到這一點。檢查具有DateTime鍵的兩個詞典是否共享相同日期
回答
您可以嘗試的LINQ找到按鍵的交集:
Boolean hasSameKeys =
(dict1.Keys.Select(x => new DateTime(x.Year, x.Month, 1)).Intersect(
dict2.Keys.Select(x => new DateTime(x.Year, x.Month, 1)))).Any();
如果你想檢查是否有年份和月份在字典中,你可以再次使用Linq:
int month = 3; // <- Month of interest
int year = 2014; // <- Year of interest
Boolean hasKeys = dict1.Keys.Where(x => (x.Year == year) && (x.Month == month)).Any();
如果您想要彙總您的數據,例如總結值內每個月:
Dictionary<DateTime, int> oldDict = new Dictionary<DateTime, int>() {
{new DateTime(1999, 1, 25), 1},
{new DateTime(1999, 2, 25), 2}, // <- These values should be added up
{new DateTime(1999, 2, 27), 3}, // <- These values should be added up
{new DateTime(1999, 3, 25), 4},
{new DateTime(1999, 4, 25), 5},
};
Dictionary<DateTime, int> aggregatedDict =
oldDict.GroupBy(pair => new DateTime(pair.Key.Year, pair.Key.Month, 1),
pair => pair.Value)
.ToDictionary(x => x.Key,
x => x.Aggregate(0, (sum, item) => sum + item));
如果我想檢查字典中是否存在某個月份,那該怎麼辦?如果是這樣更新數據。否則將日期添加到字典中? – user3305453
@ user3305453:你可以在字典鍵上使用Linq,看看我的編輯 –
我真的需要一些更大的幫助。我有一些DateTime的數據。現在我必須按年,月,日等向用戶表示數據。所以我必須預先計算所有的值。你能幫我解決這個問題嗎? – user3305453
將您DateTime
成String
只有年份和月份保持在它:
String dateString = DateTime.Now.ToString("yyyyMM");
然後,所有你需要做的是一個簡單的字符串比較。
我幾乎更喜歡用linq。在這種情況下Linq的Any
方法。
var month = 3;
var year = 2014;
var dic1 = new Dictionary<int, DateTime>();
var dic2 = new Dictionary<int, DateTime>();
// fill dictionaries
if (dic1.Any(date => date.Value.Year == year && date.Value.Month == month) &&
dic2.Any(date => date.Value.Year == year && date.Value.Month == month))
{
// do something
}
- 1. 檢查具有相似鍵但不同值的兩個詞典
- 2. 如何檢查兩個單詞是否具有相同的基礎或詞幹?
- 3. 創建詞典並查看鍵是否總是具有相同的值
- 4. 合併兩個字典,共享相同的鍵:價值
- 5. NUnit的:檢查是否兩個字典是相同的
- 6. 如何檢查兩個PictureBox是否具有相同的圖像?
- 7. 檢查兩個數組是否具有相同的值
- 8. 如何檢查兩個JButton是否具有相同的ImageIcon?
- 9. 檢查字典是否有相同的值的關鍵
- 10. 搜索具有相同鍵和不同值的多個詞典
- 11. 檢查兩個查詢是否相同
- 12. 如何檢查兩個日期是否在同一日曆日
- 13. 如何檢查字典中的兩個鍵是否保持相同的值
- 14. 用於檢查特定ID的SQL查詢是否具有相同的日期
- 15. 如何檢查兩個字典是否包含相同的值?
- 16. Facebook共享具有兩個不同維度的相同圖像
- 17. 檢查字典是否有多個鍵
- 18. 檢查是否包含兩個日期
- 19. 檢查兩個Django查詢集是否有共同的項目
- 20. PHP:檢查兩個隨機單詞是否不相同
- 21. Swift:檢查兩個NSDates是否相同
- 22. 檢查兩個json是否相同
- 23. 檢查兩個ID是否相同
- 24. 檢查兩個jar類是否相同
- 25. 檢查兩個Dask是否相同
- 26. Java檢查具體日期是否爲公共假期國家
- 27. 檢查文件是否與名稱具有相同的日期,Python 3
- 28. 檢查兩個日期是否在同一個月
- 29. Java - 如何檢查兩個日期值是否相隔X天
- 30. 檢查日期是否在mysql中的兩個日期之間
到目前爲止,您有嘗試過什麼嗎? – bit