C# 检查具有DateTime键的两个词典是否共享相同的日期
我有两本字典。我正在存储指定时间的值。现在,我想在处理它时变得更细粒度。我想比较一下这两本词典是否有相同的月份和年份,与日期无关。我怎么可能做到这一点。您可以尝试使用Linq查找关键点的交点:C# 检查具有DateTime键的两个词典是否共享相同的日期,c#,C#,我有两本字典。我正在存储指定时间的值。现在,我想在处理它时变得更细粒度。我想比较一下这两本词典是否有相同的月份和年份,与日期无关。我怎么可能做到这一点。您可以尝试使用Linq查找关键点的交点: Boolean hasSameKeys = (dict1.Keys.Select(x => new DateTime(x.Year, x.Month, 1)).Intersect( dict2.Keys.Select(x => new DateTime(x.Year, x
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();
int-month=3;//x、 钥匙,
x=>x.Aggregate(0,(总和,项目)=>sum+item);
将日期时间
转换为字符串
只保留其中的年份和月份:
String dateString = DateTime.Now.ToString("yyyyMM");
然后你只需要做一个简单的字符串比较。我几乎更喜欢使用linq。在本例中,Linq的
任何方法
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
}
var月=3;
风险值年份=2014年;
var dic1=新字典();
var dic2=新字典();
//填字典
如果(dic1.Any)(日期=>date.Value.Year==Year&&date.Value.Month==Month)&&
dic2.Any(日期=>date.Value.Year==Year&&date.Value.Month==Month))
{
//做点什么
}
到目前为止你试过什么了吗?如果我想检查字典中是否有某个月……不管是哪一天。如果是,更新数据。还可以在字典中添加日期吗?@user3305453:您可以在字典键上使用Linq,请参阅我的编辑。我确实需要一些更大的帮助。我有一些数据和一些日期时间。现在我必须按年、月、日等向用户表示数据。所以我必须预先计算所有的值。您能帮我解决这个问题吗。@user3305453:如果您想聚合数据,可以使用另一个Linq,请参阅我的编辑
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
}