C#将项目添加到循环中的列表中
本文关键字:列表 循环 项目 添加 | 更新日期: 2023-09-27 17:59:22
如果multiUPC有多个值,我想循环拆分这些值,循环并将每个值添加到模型中。如果我在循环中返回,它只经过循环一次。我想创建两个列表项,并在循环完成后返回它们。这是我的密码。
for (int x = 0; x <= multiUPC.Count()-1 ; x ++)
{
return new List<PRM> { new PRM((multiUPC[x]),
this.ModelMap[PRP.GetPropertyName(() => s.SKu)],
this.ModelMap[PRP.GetPropertyName(() => s.UPCD)],
this.ModelMap[PRP.GetPropertyName(() => s.SKUD)],
this.ModelMap[PRP.GetPropertyName(() => s.Dep)]) };
}
return null;
我想返回当前返回空的循环中的所有值
感谢
首先,让我们找出(在Linq的帮助下)要添加什么:
var source = multiUPC
.Select((item, x) => new PRM(
multiUPC[x],
ModelMap[PRP.GetPropertyName(() => s.SKu)],
ModelMap[PRP.GetPropertyName(() => s.UPCD)],
ModelMap[PRP.GetPropertyName(() => s.SKUD)],
ModelMap[PRP.GetPropertyName(() => s.Dep)]
));
然后决定如何添加,例如,如果您只想将source
返回为List<PRM>
:
var result = source
.ToList();
如果您想添加到现有列表中:
List<PRM> result = ...
...
result.AddRange(source);
var result = new List<List<PRM>>();
for (int x = 0; x <= multiUPC.Count()-1 ; x ++)
{
result.Add( new List<PRM> { new PRM((multiUPC[x]),
this.ModelMap[PRP.GetPropertyName(() => s.SKu)],
this.ModelMap[PRP.GetPropertyName(() => s.UPCD)],
this.ModelMap[PRP.GetPropertyName(() => s.SKUD)],
this.ModelMap[PRP.GetPropertyName(() => s.Dep)]) });
}
return result
如果要返回循环中的项目列表,可以使用yield。
看看这个
然后,如果您的退货类型是列表,您可以使用类似的收益率
for (int x = 0; x <= multiUPC.Count()-1 ; x ++)
{
return yield new List<PRM> { new PRM((multiUPC[x]),
this.ModelMap[PRP.GetPropertyName(() => s.SKu)],
this.ModelMap[PRP.GetPropertyName(() => s.UPCD)],
this.ModelMap[PRP.GetPropertyName(() => s.SKUD)],
this.ModelMap[PRP.GetPropertyName(() => s.Dep)]) };
}
但是,如果您只需要一个列表,其中包含您正在填写的值,请使用
for (int x = 0; x <= multiUPC.Count()-1 ; x ++)
{
return yield new PRM((multiUPC[x]),
this.ModelMap[PRP.GetPropertyName(() => s.SKu)],
this.ModelMap[PRP.GetPropertyName(() => s.UPCD)],
this.ModelMap[PRP.GetPropertyName(() => s.SKUD)],
this.ModelMap[PRP.GetPropertyName(() => s.Dep)]) ;
}