c#方法中for循环中无法达到的增量

c#方法中for循环中无法达到的增量,c#,increment,unreachable-code,C#,Increment,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) {

我在这个
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();
}
public IActionResult列表(int-id){

for(id=0;id是不可访问的,因为您的for循环中有一行:
返回视图(listafiliali);
。该方法在第一次for循环迭代中返回,并在到达前面提到的返回时终止其执行。

是不可访问的,因为您有这一行:
返回视图(listafiliali);
在for循环中。该方法返回并在第一次for循环迭代中终止其执行,只要它达到前面提到的返回值。

在循环完成后返回视图

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();
}
public IActionResult列表(int-id){
var listafiliali=新列表();
对于(id=0;id 0)
返回视图(listafiliali);
返回视图();
}

循环完成后返回视图

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();
}
public IActionResult列表(int-id){
var listafiliali=新列表();
对于(id=0;id 0)
返回视图(listafiliali);
返回视图();
}
您的代码有几个问题:

  • 您忽略传递的
    id
    :假设我调用
    List(1234)
    1234
    以及
    List(789)
  • 由于在
    1st
    循环之后返回,因此不会循环
    id
  • 您永远不会到达
    return View();
    code:您进入循环并从中返回
  • 我猜,你想要这样的东西:

      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
    :假设我调用
    List(1234)
    1234
    以及
    List(789)
  • 由于在
    1st
    循环之后返回,因此不会循环
    id
  • 您永远不会到达
    return View();
    code:您进入循环并从中返回
  • 我猜,你想要这样的东西:

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

    无法访问它,因为您
    返回视图(listafiliali)
    在第一个iteration@Rafalon谢谢,但是我如何才能返回该变量?为什么在返回找到的第一个值时需要循环?哪一个?不清楚您想要实现什么?请问,原始问题是什么?您试图实现什么?您忽略传递的
    id
    ,您不使用
    for
    loop(您从第一次迭代返回)并且您从不调用
    返回视图();
    它是不可访问的,因为您
    返回视图(listafiliali)
    在第一个iteration@Rafalon谢谢,但是我如何才能返回该变量?为什么在返回找到的第一个值时需要循环?哪一个?不清楚您想要实现什么?请问,原始问题是什么?您试图实现什么?您忽略传递的
    id
    ,您不使用
    for
    loop(您从第一次迭代返回)并且您从不调用
    returnview();