在C#方法中for循环中无法达到增量

时间:2019-06-20 09:40:15

标签: c# increment id unreachable-code

在此for循环中,我有这个无法访问的代码

public IActionResult List(int id) {
    for (id = 0; id <= 1000; id++) {
        var fil = _repoFil.GetById(id).Result;
        var listafiliali = new List<FilialeVM>();

        foreach (var filiale in fil) {
            var filialeVM = _mapper.Map<FilialeVM>(fil);
            listafiliali.Add(filialeVM);
        }

        return View(listafiliali);
    }

    return View();
}

增量id++ 无法访问

3 个答案:

答案 0 :(得分:1)

您的代码有几个问题

  1. 忽略 id通过了:想象我叫List(1234)1234和{{1}中的789都会被忽略}
  2. 不要在List(789)上循环,因为您在id循环之后返回
  3. 您将永远无法到达 1st代码:您输入循环并从中返回。

我想,您想要这样的东西:

return View();

或者如果您不想通过 using System.Linq; ... public IActionResult List(int id) { // for given id we collect all corresponding FilialeVM items var listafiliali = _repoFil .GetById(id) // items correspond to given id .Result .Select(fil => _mapper.Map<FilialeVM>(fil)) // mapped to FilialeVM .ToList(); // organized as list // If we have any item in listafiliali, view them, otherwise use default View() return listafiliali.Any() ? View(listafiliali) : View(); } 而是扫描id范围,则:

id = [0..1000]

答案 1 :(得分:0)

无法访问,因为您在for循环中有以下行:return View(listafiliali);。该方法返回第一个for循环迭代,并在达到前面提到的返回值后立即终止执行。

答案 2 :(得分:0)

循环完成后返回视图

public IActionResult List(int id) {
    var listafiliali = new List<FilialeVM>();

    for (id = 0; id <= 1000; id++) {
        var fil = _repoFil.GetById(id).Result;            
        foreach (var filiale in fil) {
            var filialeVM = _mapper.Map<FilialeVM>(fil);
            listafiliali.Add(filialeVM);
        }            
    }

    if(listafiliali.Count > 0)
       return View(listafiliali);

    return View();
}