C# Xamarin开发中DateTime格式调整与Distinct去重问题咨询
问题1:DateTime绑定到Label仅展示日期的解决方案
两种常用实现方式,按需选择即可:
- XAML绑定场景:直接在绑定表达式中指定
StringFormat参数,示例代码如下:Text="{Binding dateTime, StringFormat='{0:dd.MM.yyyy}'}"
可根据需求调整格式串,比如需要2021-11-25格式就改为{0:yyyy-MM-dd} - 后台代码赋值场景:调用DateTime的ToString方法传入格式参数即可,示例:
yourLabel.Text = dateTime.ToString("dd.MM.yyyy")
问题2:Distinct()去重无效的原因及修复方案
失效原因
DateTime类型包含年、月、日、时、分、秒全量时间字段,Distinct()会做全字段匹配。你视觉上判断为同一天的日期,实际时分秒部分存在差异,因此不会被判定为重复值。
修复写法
先提取DateTime的Date属性(该属性会自动将时分秒统一置为00:00:00,仅保留日期维度的值)再做去重,代码如下:MyList.Select(x => x.dateTime.Date).Distinct().ToList()
内容的提问来源于stack exchange,提问作者kuku4321
相关产品推荐
相关产品推荐

