【发布时间】: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,我改不了。
-
在这种情况下,吉姆的答案可能是你最好的选择。