【发布时间】:2019-03-21 11:00:53
【问题描述】:
我有一个对象列表,我只想在其中添加一个新对象,如果列表中不包含具有匹配属性的对象,我正在尝试这样做:
reservation = new ForecastReservationAssignees();
string extractWeekNumber = Regex.Match(weekNumberValue.Value.ToString(), @"\d+").Value;
int weekNumber = Int32.Parse(extractWeekNumber);
if ((reservationAssigneeList.Any(i => i.AvailableFor != weekNumber))
&& (reservationAssigneeList.Any(i => i.EmployeeName != employeeNameValue.Value.ToString())))
{
reservation.AvailableFor = weekNumber;
// Add it.
reservation.EmployeeName = employeeNameValue.Value.ToString();
// Add object.
reservationAssigneeList.Add(reservation);
}
首先我创建一个新对象,它具有属性EmployeeName,一个字符串和AvailableFor,它是一个int。我从我在别处得到的字符串中提取数字并将数字解析为 int。然后是 if 语句。在这里,我想检查列表是否已经包含这些属性。基本上我想要的是,只添加一个员工一次,然后该员工可以有多个AvailableFor,这是几周,虽然只有同一周一次。所以示例是:
> Employee1
Week 11
Week 12
Week 13
因此,没有员工姓名两次,每个员工也没有每周两次。不过,多名员工的周数可能相同,因此第一名和第二名员工的周数相同。
当我运行上面的代码时,我什么也没有得到,什么也没有添加。我可能做错了什么?
【问题讨论】:
-
你有没有试过调试看看是否进入了if块?
-
将 IF 语句分解成更小的部分,并找出哪个部分失败。
-
是的,我试过调试,它没有进入