C# 从多个循环中获取一个值

C# 从多个循环中获取一个值,c#,json,loops,C#,Json,Loops,我有一个数组列表,我想从每个数组中提取一个值,并构建一个JSON结构。当前,对于每个managedstrategy,货币始终是循环中的最后一个值。在循环名称时,如何获取第一个、第二个值等 List<managedstrategy> Records = new List<managedstrategy>(); int idcnt = 0; foreach (var name in results[0]) {

我有一个数组列表,我想从每个数组中提取一个值,并构建一个JSON结构。当前,对于每个managedstrategy,货币始终是循环中的最后一个值。在循环名称时,如何获取第一个、第二个值等

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);
List记录=新列表();
int-idcnt=0;
foreach(结果[0]中的变量名称)
{
managedstrategy ms=新managedstrategy();
ms.Id=idcnt++;
ms.Name=Name.ToString();
foreach(结果中的var货币[1]){
ms.Currency=Currency.ToString();
}
记录。添加(ms);
}
var项目=新项目
{
总计=结果。计数(),
记录
};
返回Json(Items,JsonRequestBehavior.AllowGet);

JSON结构是{Records:[{name:blah,currency:gbp}]}

假设我正确理解了这个问题,您可能需要研究Linq提供的Zip方法。它用于将两个不同的列表“压缩”在一起,类似于拉链的工作原理


可以找到一个相关问题。

当前,您将第二个循环嵌套在第一个循环中,导致它总是返回最后一个货币,您必须将其全部放入一个大for循环中,以便它执行您想要的操作:

for (int i = 0; i < someNumber; i++)
{
    // some code
    ms.Name = results[0][i].ToString();
    ms.Currency = results[1][i].ToString();
}
for(int i=0;i