c# - 从 IEnumerable<T> 集合中移除项目

标签 c# ienumerable

我有一个填充的 IEnumerable<User>收藏。

我想从中删除一个项目,我该怎么做?

foreach(var u in users)
{
  if(u.userId = 1123)
  {
    // remove!
  }
}

我知道你不应该在循环时删除,所以我不介意创建一个新集合或在之后删除它。

但我不知道如何删除一个项目,由于某种原因丢失了!

或者我也很困惑,我怎样才能创建一个新的集合,比如:

IEnumerable<User> modifiedUsers = new List<User>();

foreach(var u in users)
{
   if(u.userId != 1233)
   {
        modifiedUsers.add ??????
   }
}

如何添加到收藏中?

最佳答案

不是删除而是使用 LINQ 创建一个没有该元素的新 List:

// remove
users = users.Where(u => u.userId != 123).ToList();

// new list
var modified = users.Where(u => u.userId == 123).ToList();

关于c# - 从 IEnumerable<T> 集合中移除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143438/

相关文章:

c# - F# 库预期在使用时表现得像 C#

c# - 从 IEnumerable 转换为列表

c# - 如何同时遍历两个 IEnumerables?

c# - 使用 WebClient DownloadStringAsync 下载时引发 TargetInvocableException

c# - 使用枚举和 switch 语句 c#

c# - 如何使用mvvm模式更改标签内容

c# - 使用 C# 将 List<string> 按行转换为字节数组

c# - 返回 IEnumerable 实例和 C# 中的 yield return 语句之间的确切区别是什么

c# - 添加 LINQ 的 LongCount 扩展方法是否有实际原因?

c# - 具有开始和间隔的理想 C# IEnumerable 通用数字序列