private void UpdateByIdStr(task task, string[] ids) { int oldLen = task.task_pighouse.Count; int newLen = ids.Length; int leastLength = oldLen < newLen ? oldLen : newLen; var taskPigHouseService = new TaskPigHouseService(); List<task_pighouse> taskPigHouseList = FindByTaskId(task.Id); for (int i = 0; i < leastLength; i++) { task_pighouse updateitem = taskPigHouseList[i]; updateitem.PigHouseId = long.Parse(ids[i]); Update(updateitem); } for (int i = leastLength; i < oldLen; i++) { taskPigHouseService.Delete(taskPigHouseService.Find(taskPigHouseList[i].Id)); } for (int i = leastLength; i < newLen; i++) { taskPigHouseService.Insert(new task_pighouse { TaskId = task.Id, PigHouseId = long.Parse(ids[i]) }); } }