【发布时间】:2022-10-04 16:06:53
【问题描述】:
谢谢大家的评论和回答我有这个项目是为员工每月轮班, 我写了一些代码,但我得到了一些不正确的东西,比如一些员工在同一个月重复,这是错误的,所以我有更多 我的桌子上有 100 名员工,叫做 EmployeeTB,我想把他们放在 ShiftTB 中,当我使用随机函数时,这只是一个月的时间,而不是重复
这是生成我的日期和日期的代码,它是正确的:
private void PopulateDate(DateTime FromDate, DateTime ToDate)
{
var dt1 = FromDate;
var dt2 = ToDate;
var dt = FromDate;
if (dt <= ToDate)
{
dt = dt.AddDays(-1);
while (dt2 >= dt1)
{
List<ShiftTB> ResultList = new List<ShiftTB>
{
new ShiftTB { NameOfDay = dt1.DayOfWeek.ToString(), DateOfDay = dt=dt.AddDays(1) },
};
foreach (var item in ResultList)
{
dt1 = dt1.AddDays(1);
db.ShiftTBs.InsertOnSubmit(item);
}
db.SubmitChanges();
}
}
}
这是我需要更正的代码:
Random rnd = new Random();
PopulateDate(DateTime.Parse(txtFromDate.Text), DateTime.Parse(txtToDate.Text));
var EmpList = db.EmployeeTBs.Where(x => x.EmpType == "1" && x.Empstatus == "ok").ToList();
for (int i = 0; i < EmpList.Count; i++)
{
int x = rnd.Next(0, EmpList.Count());
var ListOfResult = db.ShiftTBs.Where(lor => lor.EmpName == null).ToList();
ListOfResult[x].EmpID = EmpList[i].EmpID;
ListOfResult[x].EmpName = EmpList[i].EmpName;
ListOfResult[x].EmpDepartment = EmpList[i].DepartmentName;
ListOfResult[x].EmpType = EmpList[i].EmpType;
}
db.SubmitChanges();
我能得到正确的代码吗?
【问题讨论】:
-
这回答了你的问题了吗? Randomize a List<T>
标签: c# asp.net list loops random