我有一个 List<List<double>> val
,其中包含2000个列表,每个列表中有2000个元素(您可以将其想象为2000 X 2000矩阵)。 我有两个双精度值x和y。 我需要选择在范围x和y之间的List<List<double>> val
中的所有元素。 是否可以使用C#中的单个语句使用LinQ来完成此操作。
val.SelectMany(a => a).Where(a => a < y && a > x)
SelectMany
函数可以将列表扁平化,然后使用 Where
函数来过滤它。
我会这样做
var query = from z in val.SelectMany(i=> i)
where z > x && x < y
select z;
像这样:
List<double> abc = (from listA in matrix from theVal in listA where (theVal > 5 && theVal < 6) select theVal).ToList();