如何通过与单个 int 变量进行比较来过滤 list<int> ?

ram*_*mmi 2 c# console list

我有一个list<int>10, 20, 30, 这样的值56。我还有一个局部变量int _marks = 30

如何打印列表中小于 的值的值_marks

Far*_*yev 6

您可以使用Where()fromSystem.Linq命名空间来过滤数组。它返回IEnumerable<int>对象。为了打印这个集合中的元素,我们可以使用List<T>.ForEach方法。它对 的每个元素执行指定的操作List<T>。如果是单个参数,您可以单独传递函数:

marks.Where(x => x < _marks).ToList().Foreach(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果您是新手,您也可以使用非 LINQ 解决方案:

foreach(int item in marks)
{
    if(item < _marks)
        Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)

另外,正如 @Kjartan 所说,如果列表是有序的,那么使用TakeWhile()SkipWhile()函数来获取所需元素可能是一个不错的选择:

// If the list is ordered in ascending order
marks.TakeWhile(x => x < _marks).ToList().Foreach(Console.WriteLine);

// If the list is ordered in descending order
marks.SkipWhile(x => x >= _marks).ToList().Foreach(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)