【发布时间】:2018-04-09 20:17:22
【问题描述】:
int dateOffset = 0;
DateTimeOffset currentDate = DateTimeOffset.Now;
do
{
int sameDayCount = 0;
do
{
for (int record = 0; record < List.Count; record++)
{
Client client = new Client();
client.Name = List[record].Name;
client.Date = currentDate.AddDays(dateOffset);
List2.Add(client);
sameDayCount += 1;
}
} while (sameDayCount < 2);
dateOffset += 1;
} while (dateOffset < 30);
以上是我编写的代码,这要归功于我对 C# 语言的了解和经验。 正如您所料,它没有按预期工作。
我需要用来自List 的数据和附加元素 -DateTime 填充List2。
基本上我想安排客户的姓名为 30 天,每天两个。
在我写的代码中,我希望do{} while (sameDayCount < 2); 能工作,但sameDayCount += 1; 在for 循环内,do{} while 实际上等待for 循环完成(当它到达@987654330 @)。无论如何,for 循环将从record = 0 重新开始,我需要它从最后一个点继续下去,当达到每天 2 条记录时。
知道如何解决这个问题吗?
所以有:
具有有限数量记录的列表(客户名称)
30 天与记录一起分配
每个日期必须有两条不同的记录
必须从离开的地方重新读取包含记录的列表
当列表完全迭代(b=List.Count)时,它会从 b=0 重新开始
到第 30 天时,整个循环结束。
简而言之,看到我的问题根本不清楚。 假设第一个列表包含 5 个客户(数量可能会有所不同)。 我想用这 5 个客户 + 7 天填充第二个列表。 我希望第二个列表变成这样:
第 1 天 - 客户 1、客户 2
第 2 天 - 客户 3、客户 4
第 3 天 - 客户 5,客户 1
第 4 天 - 客户 2,客户 3
day5 - client4, client5
第 6 天 - 客户 1、客户 2
第 7 天 - 客户 3、客户 4
【问题讨论】:
-
您可以在一行中使用 LINQ 轻松完成此操作。
-
请重命名您的变量,使其不那么神秘。
s、t和b在现实世界中代表什么? -
你能解释一下 maccettura 吗?我听说过 LINQ 并做了一些事情,但我不确定这是否是我认为的那样。
-
@Dai 他们只是循环的辅助号码
-
我不清楚每天 2 条记录是什么意思。您想每天安排 2 次 cilents 还是每天安排同一客户两次或每天安排所有客户两次?为什么您需要一份副本(如果您想每天安排 2 个客户)?您不能将日期分配给现有列表中的客户吗?