我有一个数组列表,我想从每个数组中取一个值并构建一个JSON结构。目前,对于每个managedstrategy,货币始终是循环中的最后一个值。在循环名称时,如何获取第1个值,然后是第2个值?
List<managedstrategy> Records = new List<managedstrategy>();
int idcnt = 0;
foreach (var name in results[0])
{
managedstrategy ms = new managedstrategy();
ms.Id = idcnt++;
ms.Name = name.ToString();
foreach (var currency in results[1]) {
ms.Currency = currency.ToString();
}
Records.Add(ms);
}
var Items = new
{
total = results.Count(),
Records
};
return Json(Items, JsonRequestBehavior.AllowGet);
JSON结构是{记录:[{name:blah,currency:gbp}]}
答案 0 :(得分:0)
假设我正确理解了问题,您可能需要查看Linq提供的Zip方法。它用于将两个不同的列表“压缩”在一起,类似于拉链的工作方式。
可以找到相关问题here。
答案 1 :(得分:0)
目前,您在第一个循环中嵌套第二个循环,导致它始终返回最后一个货币,您必须将它全部放在一个大的for循环中,以便它能够执行您想要的操作:
for (int i = 0; i < someNumber; i++)
{
// some code
ms.Name = results[0][i].ToString();
ms.Currency = results[1][i].ToString();
}