C# List<double>A,有1000个数,现在需要:以第59个数为基准,第59个数之前以及第59个数之后,每隔2个数取出,Linq方法
时间: 2024-09-09 20:14:42 浏览: 49
在C#中,你可以使用LINQ(Language Integrated Query)来处理这个需求。假设`List<double> A`已经准备好,你可以使用`Skip()`、`Take()`和`ElementAt()`方法来实现你的要求。以下是具体的 LINQ 查询示例:
```csharp
using System.Linq;
// 假设A是你已有的列表
var list = A.ToList(); // 先将List<double>转换为IQueryable<double>以支持LINQ操作
// 以第59个数为基准,取前58个数(从0开始计数)
var preBase = list.Take(58);
// 取第60个数作为基准点(因为是从0开始计数,所以是第59个元素)
var baseValue = list.ElementAt(59);
// 取第61个数到列表结束之间的数,每隔2个取一个
var postBase = list.Skip(60).TakeWhile((x, i) => i % 2 == 0); // 这里我们每隔2个取一个数直到列表结束
// 合并三个部分
var result = preBase.Concat(new[] { baseValue }).Concat(postBase);
result.ToList(); // 如果你需要最终的List<double>
```
阅读全文