我曾经以这种方式检索我在达到某个条件之前跳过的项目数:
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();
Run Code Online (Sandbox Code Playgroud)
所以j是series2X的项目的索引,它是series1X的第一项的下一个.
现在我将其重写为DataPoint 具有X,Y属性.我试过这样做,但我无法访问X或Y.
在这种情况下
List<DataPoint> series1 = new List<DataPoint>();
List<DataPoint> series2 = new List<DataPoint>();
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?谢谢
我不完全理解你的问题,但我认为你正在寻找类似的东西;
j = series2X.TakeWhile(p => p.X < series1[0].X && p.Y < series1[0].Y).Count();'
Run Code Online (Sandbox Code Playgroud)
在LINQ to Objects中,您可以使用点表示法访问C#中任何其他位置的属性.p是当前项目series2的类型DataPoint,因此是每个项目,series1因此您可以p.MyProperty为任何类型的任何属性.
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |