-1

我曾经以这种方式检索在达到特定条件之前跳过的项目数:

List<double> series1X = new List<double> {4,6,8,9,10 };
List<double> series1Y = new List<double> { 10, 20, 15, 70,5 };
List<double> series2X = new List<double> { 1,2,3,6,7,8.1,8.2,8.3,8.4,9,9.75};

int j=0;
j = series2X.TakeWhile(p => p < series1X[0]).Count();

所以 j 是 series2X 的项目的索引,它是 series1X 的第一个项目的下一个。

现在我将其重写为DataPoint 具有 X、Y 属性。我也尝试过这样做,但我无法访问那个 X 或 Y。

在这种情况下

List<DataPoint> series1 = new  List<DataPoint>();
List<DataPoint> series2 = new  List<DataPoint>();

如何才能做到这一点?谢谢

4

1 回答 1

5

我不完全理解你的问题,但我认为你正在寻找类似的东西;

j = series2X.TakeWhile(p => p.X < series1[0].X && p.Y < series1[0].Y).Count();'

在 LINQ to Objects 中,您可以像在 C# 中的任何其他地方一样使用点符号访问属性。p是类型的当前项目,series2其中的DataPoint每个项目也是如此,series1因此您可以p.MyProperty对任何类型的任何属性执行此操作。

于 2013-06-17T18:58:31.180 回答