【发布时间】:2014-06-11 06:47:02
【问题描述】:
我有一个List<List<double>> val,其中包含 2000 个列表和每个列表中的 2000 个元素(您可以将其想象为 2000 X 2000 矩阵)。我有两个双值,比如 x 和 y。我需要选择List<List<double>> val 中介于x 和y 范围内的所有元素。我可以使用 LinQ 在 C# 中使用单个语句来执行此操作吗?
【问题讨论】:
我有一个List<List<double>> val,其中包含 2000 个列表和每个列表中的 2000 个元素(您可以将其想象为 2000 X 2000 矩阵)。我有两个双值,比如 x 和 y。我需要选择List<List<double>> val 中介于x 和y 范围内的所有元素。我可以使用 LinQ 在 C# 中使用单个语句来执行此操作吗?
【问题讨论】:
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();
【讨论】: