【问题标题】:Generic list Foreach loop with conditional statement带有条件语句的通用列表 Foreach 循环
【发布时间】:2013-09-08 04:27:49
【问题描述】:

我正在使用 foreach 循环来获取迭代所有项目的通用列表项,但我想获取某些具有条件的项目。 我这样做如下:

 foreach (FilesToProcessDataModels item in ListfilesToProcess)
            {
                if (item.IsChecked)
                {
                    //file operations
                }
            }

有没有什么方法可以在没有 if 语句的情况下完成,在 foreach 循环中迭代 item.IsChecked==true 的数据。

【问题讨论】:

  • 在问这个问题之前你有没有研究过 LINQ?根据我对您上一个问题的回答:“一般来说,每当您想摆脱循环(或简化循环)时,您都应该查看 LINQ。”
  • @I4V:这只是计数。这是在做其他操作。但看起来 OP 自上一个问题以来没有对 LINQ 进行任何研究:(

标签: c# list generics foreach conditional-statements


【解决方案1】:

你可以使用 Linq Where:

var checkedItems = ListfilesToProcess.Where(i => i.IsChecked);
foreach (FilesToProcessDataModels item in checkedItems)
{
    // file operations
}

【讨论】:

  • 谢谢。我的最后一个问题是关于计数的,与这个问题无关。我像 foreach (FilesToProcessDataModels item in ListfilesToProcess.Where(item => item.IsChecked)) 一样使用它,它运行良好。
【解决方案2】:

使用Where

var foo = ListfilesToProcess.Where(i => i.IsChecked);

【讨论】:

  • 没有迹象表明在这里使用ToList 是合适的。 OP 只想对过滤后的序列中的每个元素执行一个操作 - 只需 Whereforeach 循环就可以了。
猜你喜欢
  • 2014-07-07
  • 1970-01-01
  • 2014-08-30
  • 2022-12-07
  • 2012-06-22
  • 1970-01-01
  • 2017-01-13
  • 2019-12-12
  • 1970-01-01
相关资源
最近更新 更多