在C#LINQ中反向查询列表 列表返回(列表向量,int Z,int firstidx) { 返回vector.Reverse() .Skip(firstidx) .Take(Z) .Select(i=>vector.Reverse().Select(j=>j!=0?i/j:0.0).ToList()) .ToList(); }

在C#LINQ中反向查询列表 列表返回(列表向量,int Z,int firstidx) { 返回vector.Reverse() .Skip(firstidx) .Take(Z) .Select(i=>vector.Reverse().Select(j=>j!=0?i/j:0.0).ToList()) .ToList(); },c#,linq,C#,Linq,我想反向查询列表,但是.Reverse()中有一些错误,它说: 运算符“.”不能应用于类型为“void”的oprand 甚至我创建了一个中间变量 List Reversevector=vector.Reverse().ToList() 那么在linq中使用.Reverse()的正确方法是什么呢?如下所示: 问题是您使用的是方法,而不是 您有两个选项,可以将其称为静态方法或显式转换 vector.Reverse(); return vector.Skip(firstidx)

我想反向查询
列表
,但是
.Reverse()
中有一些错误,它说:

运算符“.”不能应用于类型为“void”的oprand

甚至我创建了一个中间变量
List Reversevector=vector.Reverse().ToList()

那么在
linq
中使用
.Reverse()
的正确方法是什么呢?

如下所示:

问题是您使用的是方法,而不是

您有两个选项,可以将其称为静态方法或显式转换

vector.Reverse();
return vector.Skip(firstidx)
             .Take(Z)
             .Select(i => vector.Select(j => j != 0? i / j : 0.0).ToList())
             .ToList();

将列表复制到局部变量,或创建类似于下面的扩展方法并修改代码

Enumerable.Reverse(vector)
          .Skip(firstidx)
           .Take(Z)
           .Select(i => Enumerable.Reverse(vector).Select(j => j != 0? i / j : 0.0).ToList())
           .ToList(); 
公共静态IEnumerable反向(此IEnumerable源代码)
{
var reversedList=source.ToList();
reverseedlist.Reverse();
返回反向列表;
}

请更正
。选择(i=>vector.Reverse()。选择(j=>j!=0?i/j:0.0)。ToList())
。正如你所说,它不会返回
列表
@AdilMammadov哦,没有看到他用了两次。
Enumerable.Reverse(vector)
          .Skip(firstidx)
           .Take(Z)
           .Select(i => Enumerable.Reverse(vector).Select(j => j != 0? i / j : 0.0).ToList())
           .ToList(); 
public static IEnumerable<T> Reverse<T>(this IEnumerable<T> source)
{
   var reversedList = source.ToList();
   reversedList.Reverse();
   return reversedList;
}