我有一個目標:如何正確配置foreach循環以避免索引超出範圍錯誤?
public List<double> obj { get; set; }
public class Employee
{
public int EmployeeId { get; set; }
public int Skillssetpoints { get; set; }
public string Name { get; set; }
public Nullable<System.DateTime> Date { get; set; }
}
記錄是這樣的:
EmployeeId SkillssetPoints Date
1 5 4/5/2016 16:12:12
2 12 3/5/2016 17:12:12
3 4 8/5/2016 8:12:12
4 20 1/5/2016 2:12:12
這OBJ將contaisn值是這樣的:
"obj":[10,20]
現在我想做的事就是我會獲取所有員工數據,併爲每個員工數據我將執行乘法 像這樣:
1st records:obj[0] * Skillssetpoints (10*5=50)
2nd records:obj[0] * Skillssetpoints (20*12=240)
這是我的循環:
var employeeList=context.Employee.ToList();
foreach (var item in employeeList.Select((value, index) => new { value, index }))
{
var employee = new Employee();
employee.Skillssetpoints=obj[item.index] * item.Skillssetpoints;
//Save records in database
}
但這裏的問題是我收到4條記錄員工和我的OBJ包含2個值,以便得到如下錯誤:
錯誤:索引超出範圍。必須是非負數且小於集合的大小。
注意:我也想考慮一下,我的員工記錄將少於列表對象中的項目數量。
如何正確配置此循環?
你確定你有'emplyeeList'的記錄數量相等嗎? –
@HariPrasad:列表對象中員工記錄和數據的數量可以不同,如有時員工記錄可能大於列表對象中的數據,有時員工記錄可能少於列表對象中的數據 –
如何將員工映射到obj案件?你是否想只更新具有有效「值」的員工,並忽略「值」是否可用(在'obj'中)? –