List<List<double>> Return(List<double> vector, int Z, int firstidx)
{
return vector.Reverse()
.Skip(firstidx)
.Take(Z)
.Select(i => vector.Reverse().Select(j => j != 0? i / j : 0.0).ToList())
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我想reversely查询List但是有一些错误.Reverse(),它说:
接线员'.' 不能应用'void'类型的oprand.
即使我创建了一个中间变量
List<double> Reversevector = vector.Reverse().ToList();
那么正确的使用方法.Reverse()是linq什么?
问题是你使用的List.Reverse()方法不是
Enumerable.Reverse()
你有两个选择,要么将其称为静态方法,要么将其称为显式转换.
Enumerable.Reverse(vector)
.Skip(firstidx)
.Take(Z)
.Select(i => Enumerable.Reverse(vector).Select(j => j != 0? i / j : 0.0).ToList())
.ToList();
Run Code Online (Sandbox Code Playgroud)
像这样使用它,因为List<T>.Reverse()不会返回新列表:
vector.Reverse();
return vector.Skip(firstidx)
.Take(Z)
.Select(i => vector.Select(j => j != 0? i / j : 0.0).ToList())
.ToList();
Run Code Online (Sandbox Code Playgroud)