我曾经以这种方式检索我在达到某个条件之前跳过的项目数:
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 次 |
最近记录: |