我有两个词典。我正在存储一个指定时间的值。现在我想在处理它时更加细化。我想比较一下这两本词典是否具有相同的月份和年份,与日期无关。我怎么可能做到这一点。检查具有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