从多个循环中取一个值

本文关键字:一个 循环 | 更新日期: 2023-09-27 18:04:12

我有一个数组列表,我想从每个数组中获取一个值,并建立一个JSON结构。目前,对于每个管理策略,货币总是循环中的最后一个值。我怎么能采取第一个,然后第二个值等,而循环的名称?

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结构为{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();
}