C# LINQ查询ForEach无法使用

C# LINQ查询ForEach无法使用,c#,linq,foreach,C#,Linq,Foreach,我有一个匿名类型的LINQ“result”,里面有一些实体对象,可以通过LINQ从EF查询 我想利用“result”来过滤并为“newResult”在实体对象上设置一些新值 但是我不能在“newResult”的.Where()之后使用ForEach() 我能知道我做错了什么吗?使用LINQ有其他解决方案吗? (我可以做简单的foreach循环来实现它,但我想通过使用LINQ了解更多。) ForEach()。 因此,请改用普通的foreach。foreach()不是linq,它是列表上的一个函数(

我有一个匿名类型的LINQ“result”,里面有一些实体对象,可以通过LINQ从EF查询

我想利用“result”来过滤并为“newResult”在实体对象上设置一些新值

但是我不能在“newResult”的.Where()之后使用ForEach()

我能知道我做错了什么吗?使用LINQ有其他解决方案吗? (我可以做简单的foreach循环来实现它,但我想通过使用LINQ了解更多。)

ForEach()。
因此,请改用普通的
foreach

foreach()
不是linq,它是
列表上的一个函数(您正在使用
IEnumerable
)。
因此,请使用普通的foreach

就像其他人指出的那样,foreach在列表上工作,但在IEnumerable上不工作。您可以像这样定义自己的ForEach扩展,该扩展在IEnumerable上工作

 public static class MyExtension
 {
      public static void ForEach<T>(this IEnumerable<T> data, Action<T> action)
      {
            foreach (T element in data)
            {
                 action(element);
            }
      }
 }
公共静态类MyExtension
{
公共静态void ForEach(此IEnumerable数据、操作)
{
foreach(数据中的T元素)
{
行动(要素);
}
}
}

正如其他人指出的那样,ForEach可以在列表上工作,但不能在IEnumerables上工作。您可以像这样定义自己的ForEach扩展,该扩展在IEnumerable上工作

 public static class MyExtension
 {
      public static void ForEach<T>(this IEnumerable<T> data, Action<T> action)
      {
            foreach (T element in data)
            {
                 action(element);
            }
      }
 }
公共静态类MyExtension
{
公共静态void ForEach(此IEnumerable数据、操作)
{
foreach(数据中的T元素)
{
行动(要素);
}
}
}