对编码不熟悉。抱歉,这是一个新手问题,但我有点迷茫。
我有一个返回存储过程并相应保存到模型的模型,现在我想稍后再向模型的字段中添加数据。基本上,我的模型是一个对象数组,但是当我添加一个新数组时,它在每个对象上显示整个数组,并且在每个对象中都相同。.即
[0] = Name
= Country
= Type
现在我有另一个应具有CurrentPosition的属性,即动态地,例如1个下一个属性应具有2个,以此类推...
我创建了这段代码
CurrentStep = System.Web.HttpContext.Current.Session["currentStepPosition"];
int stepCount = Convert.ToInt32(CurrentStep);
List<int> stepCountList = new List<int>();
for (int i = 1; i <= stepCount; i++)
{
stepCountList.Add(i);
}
上面的代码输出一个数字数组,即1,2,3,4,5,依此类推...
但是,当我将其添加到每个对象的模型中时,我的模型具有上述属性,但是没有为每个属性赋予唯一的CurrentPosition
即每个对象1依此类推,它只是显示了整个数组在每个对象中...
我该如何克服?
### EDIT包括添加到模型中###
Error = model?.Error == null ? null : new BrokenRule()
{
Message = model.Error.Message,
Name = model.Error.Name,
};
RecipeStages = model?.Processes?.Select(obj => new GetReleasedRecipeStepsModel()
{
StepId = obj.StepId,
StepType = obj.StepType,
StepOrder = obj.StepOrder,
StepName = obj.StepName,
NumberOfProperties = obj.NumberOfProperties
//CurrentStepPosition = currentStepConverted
})?.ToArray() ?? new GetReleasedRecipeStepsModel[] { };
有没有办法遍历模型?在添加单个属性数据?在它被推到视图之前?
答案 0 :(得分:1)
Select
方法有一个重载,可以接收每个项目的索引。因此,您可以使用它来计算CurrentStepPosition
,如下所示:
RecipeStages = model?.Processes?.Select((obj, index) => new GetReleasedRecipeStepsModel()
{
StepId = obj.StepId,
StepType = obj.StepType,
StepOrder = obj.StepOrder,
StepName = obj.StepName,
NumberOfProperties = obj.NumberOfProperties
CurrentStepPosition = index + 1
})?.ToArray() ?? new GetReleasedRecipeStepsModel[] { };