从多个循环中取一个值

时间:2014-05-19 08:47:07

标签: c# json loops

我有一个数组列表,我想从每个数组中取一个值并构建一个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}]}

2 个答案:

答案 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();
}