C# SkipWhile(Item => Item == null) 仍然返回空项目

标签 c# list foreach null skip

我有一个项目列表:

List<Item> ItemList = new List<Item>;

有时列表只是部分填满或某些索引未被占用,因此当我使用 foreach 遍历列表时,它会给出错误,因为该项目为空。我想将该列表缩减为那些真正有值(value)的项目。这就是我正在尝试的:

var FullItems = ItemList.SkipWhile(Item => Item == null).ToList();

但是当我检查 FullItems 列表时,它仍然包含 ItemList 中的 null 项,所以我只是取回了我开始时使用的整个列表。

帮忙吗?

最佳答案

您在这里寻找的是:

var FullItems = ItemList.Where(Item => Item != null).ToList();

根据 docs on SkipWhile():

Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.

这不是您要寻找的行为(我已用粗体标出了您似乎不期望/不希望的实际行为)。

关于C# SkipWhile(Item => Item == null) 仍然返回空项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32273173/

相关文章:

c# - 在 Webcontrols 上使用 “Using” block 有什么问题?

Python,使用比较函数寻找最佳对象

java - 从 java 中的 lambda forEach() 返回

javascript - 使用 javascript 显示/隐藏 <li> 的子元素

c# - 如何增加 ASP .NET Core 3.0 应用程序中的最大线程数

c# - 在 C# 中,为什么我不能测试事件处理程序在其定义的类之外的任何位置是否为 null?

c# - 将自定义对象数据显示到 ListBox WPF

python - 为什么 Python 排序将大写项目放在第一位?

java - 在列表中查找字谜

php - Laravel 4 - 将 json 解码为 View