c#有十个时间怎么筛选出离某个日期时间前后最近的各三日期个时间
时间: 2024-02-11 16:06:30 浏览: 34
你可以按照以下步骤来筛选出离某个日期时间前后最近的各三个日期时间:
1. 将所有日期时间按照与目标日期时间的时间差排序,可以使用 LINQ 的 OrderBy 方法来实现。
2. 选择目标日期时间前后的日期时间,可以使用 Where 方法来实现。
3. 选择前三个日期时间和后三个日期时间,可以使用 Take 方法来实现。
具体的代码实现如下所示:
```csharp
// 假设有一个包含十个日期时间的列表 dateTimes,以及目标日期时间 targetDateTime
List<DateTime> dateTimes = new List<DateTime>();
DateTime targetDateTime = new DateTime();
// 将日期时间按照与目标日期时间的时间差排序
var sortedDateTimes = dateTimes.OrderBy(dt => Math.Abs((dt - targetDateTime).Ticks));
// 选择目标日期时间前后的日期时间
var dateTimesBeforeAndAfter = sortedDateTimes.Where(dt => dt >= targetDateTime.AddMinutes(-30) && dt <= targetDateTime.AddMinutes(30));
// 选择前三个日期时间和后三个日期时间
var nearestDateTimes = dateTimesBeforeAndAfter.Take(3).Concat(dateTimesBeforeAndAfter.Reverse().Take(3));
```
这样就可以得到离目标日期时间前后最近的各三个日期时间。请注意,上面的代码中将目标日期时间前后的时间设为 30 分钟,你可以根据实际需求来修改这个时间间隔。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)