【问题标题】:Distinct and DateTime in c#c#中的不同和日期时间
【发布时间】:2022-01-03 21:08:55
【问题描述】:

我有两个问题。我正在尝试在 xamarin 中进行我的第一个应用程序,并且我有日期列表。第一个问题是格式。当我将 bind datetime 添加到标签时,它看起来像这样“25.11.2021 00:00”。我能做些什么才能只有约会?我有不同的第二个问题。很多日期都是一样的,我只想要一个独特的。我不能使用DistincBy,所以我写了类似MyList.Select(x => x.dateTime).Distinct().ToList() 的东西,但这不起作用。谁能告诉我我做错了什么?

【问题讨论】:

  • 欢迎使用 stackoverflow。我推荐taking the tour,以及阅读how to ask a good questionwhat's on topic。对于初学者:提供有关您遇到的问题的更多详细信息(“不起作用”不是有效的错误描述),以及您如何尝试解决它 - 每个问题只有一个问题。
  • 尝试使用属性.Date DateTimes 值,它只会给你日期。也可以在您的.Select() 中尝试它,因为它会检查日期是否相同而不是日期时间,其中包含允许两个日期之间存在微小差异的精确数据。 .Select() 的代码是:MyList.Select(x => x.dateTime.Date).Distinct().ToList()
  • 我之前尝试过,但这给了我“25.11.2021 00:00”,当我不使用它时,我有相同但实时:“25.11.2021 04.40”
  • 我明白了,然后尝试将您用作标签的变量定义为 string 并在 DateTime 变量后面使用 .ToString("dd.MM.yyyy"),这将输出一个字符串,其中只有您可以使用的日期显示在您的标签中。示例:string myDate = DateTime.Now.ToString("dd.MM.yyyy");
  • DateTime 格式化和 LINQ 查询都是 C#/.NET 的核心特性,对 Xamarin 没有任何依赖

标签: c# .net linq xamarin


【解决方案1】:

日期部分

使用 .Date 的 DateTimes 值,它只会给你日期。另一个更好的解决方案是使用函数.ToString(string format) 提取字符串中的日期,您可以在标签中使用该日期。 (documentation about date format)

示例代码:

string myDate = DateTime.Now.ToString("dd.MM.yyyy");

不同的部分

对于.Select() 问题,还要在过滤器中使用.Date,因为它会检查日期是否相同而不是日期时间,其中包含允许两个日期之间存在微小差异的精确数据。

.Select() 的代码是:

MyList.Select(x => x.dateTime.Date).Distinct().ToList();

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2022-01-04
    • 2018-08-09
    • 2012-09-02
    • 2019-07-14
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多