我不确定如何通过类中的两个列表属性进行选择:
public class AddAssignMealView
{
public int TraineeID { get; set; }
public List<int> MealID { get; set; }
public List<string> Day { get; set; }
}
并创建一个list(),其中包含一个TraineeID,一个MealID和一天。我设法用MealID列表(下面)来做,但是当我添加Day列表时,我不确定该做什么。有任何想法吗?
AddAssignMealView mealtraiDeserializeObject = JsonConvert.DeserializeObject<AddAssignMealView>(mealTrainee);
meals = mealtraiDeserializeObject.MealID.Select(x => new MealTrainee()
{
TraineeID = mealtraiDeserializeObject.TraineeID,
MealID = x
}).ToList();
您可以使用Enumerable.Zip
函数组合两个List
s:
var ans = mealtraiDeserializeObject.MealID.Zip(mealtraiDeserializeObject.Day, (m, d) => new {
mealtraiDeserializeObject.TraineeID,
MealID = m,
Day = d
}).ToList();
您也可以使用Enumerable.Select
的(很少提到的)两个参数版本,但我不认为效率的微小改进值得(IMO)可读性的降低:
var ans = mealtraiDeserializeObject.MealID.Select((m, i) => new {
mealtraiDeserializeObject.TraineeID,
MealID = m,
Day = mealtraiDeserializeObject.Day[i]
}).ToList();