【问题标题】:.Net: How can I display full 7 days of the week if my data only represents some days of the week?.Net:如果我的数据仅代表一周中的某些天,我如何显示一周中的完整 7 天?
【发布时间】:2012-11-04 17:15:22
【问题描述】:

我正在使用一个用 C# 编写的应用程序,它处理每天都可以获得一些相关信息的议程。为简单起见,让我们定义一个 Day 对象,如下所示:

public class Day
{
    public DateTime date { get; set; }
    public List<string> info { get; set; }
}

有一个函数,给定一个开始日期,将返回一个列表,其中包含下周的所有天数,其中包含一些信息。下周中 info.Count = 0 的天数不在返回的列表中。因此,我们可以期望获得一个大小为 7 或更小的 List 对象。现在,我有以下问题:

我想显示所有 7 天,无论它们是否在获取的列表中。

我想出的简单(但效率低下)的解决方案是编写一个函数,该函数获取获得的列表,读取它并将缺失的日期(如果有)添加到其中。这样我们总是有一个大小为 7 的列表,并且可以愉快地用它填充一个 asp:Repeater。但我认为有更好的方法来做到这一点:

预先知道系统必须显示从给定日期开始的接下来的连续 7 天。不必有完整的列表来显示数据。我的问题是,如何做到这一点?使用中继器执行此操作是否会进入错误的方向?

【问题讨论】:

  • 返回 Days 的函数是什么样的?这就是你需要做出改变的地方。
  • 没有完整 7 天的数据应该是无关紧要的。绑定逻辑应处理数据集中存在的日期的显示内容。
  • @Bobson,返回数据的函数只是调用了一个外部API,我改不了。
  • 在这种情况下,吉姆的答案可能是你最好的选择。

标签: c# .net list


【解决方案1】:

我不明白为什么添加缺失的天数特别低效。你说的是毫秒,如果那样的话。它简化了其余的代码。否则,您将不得不手动编写中继器的大部分功能。

在我看来,您应该继续将缺失的日期添加到列表中。

【讨论】:

  • 谢谢。实际上,我很高兴添加缺失的日子,但有人暗示我要寻找不同的方法。我也有一种感觉,如果存在(稍微)更有效的方法,你必须为它牺牲很多代码的清晰度和简单性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 2016-03-01
  • 1970-01-01
  • 2018-01-10
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多