C# 获取双数组中给定日期的第一个日期索引

C# 获取双数组中给定日期的第一个日期索引,c#,datetime,C#,Datetime,我正在使用DateTime.ToOaDate()创建一个double日期数组(转换为double)。它也由Double中的Datetime等组成- 26-July-2018 14:00:00 27-July-2018 12:09:00 27-July-2018 12:10:00 27-July-2018 12:15:00 28-July-2018 12:50:00 28-July-2018 13:40:00 现在,我有一个具体的日期,比如说2018年7月27日12:15:00。我想要2018年

我正在使用
DateTime.ToOaDate()
创建一个
double
日期数组(转换为double)。它也由
Double
中的
Datetime
等组成-

26-July-2018 14:00:00
27-July-2018 12:09:00
27-July-2018 12:10:00
27-July-2018 12:15:00
28-July-2018 12:50:00
28-July-2018 13:40:00
现在,我有一个具体的日期,比如说2018年7月27日12:15:00。我想要2018年7月27日第一个日期时间开始的索引。在上述情况下,我需要索引
2018年7月27日12:09:00

请注意,我已经用DateTime格式解释了一些事情。但是在 事实上,所有这些数据都在双倍数组中。

您可以尝试的是:

DateTime tocheck = new DateTime();
tocheck = DateTime.Parse("27-July-2018 12:15:00");
double tochkd = tocheck.ToOADate();

int index = dateDouble.IndexOf(dateDouble.FirstOrDefault(x => (int)x == (int)tochkd));
或者你也可以做的就是

int index = dateDouble.IndexOf(dateDouble.FirstOrDefault(x => (int)x == tocheck.Date.ToOADate());
输出:-

   result = 1
如果该值存在,它将返回索引,否则它将返回-1

List<DateTime> dt = new List<DateTime>
{
    new DateTime(2018,7,26,14,0,0),// 26-July-2018 14:00:00
    new DateTime(2018,7,27,12,9,0),//27 - July - 2018 12:09:00
    new DateTime(2018,7,27,12,10,0),//27 - July - 2018 12:10:00
    new DateTime(2018,7,27,12,15,0),//27 - July - 2018 12:15:00
    new DateTime(2018,7,28,12,50,0),//28 - July - 2018 12:50:00
    new DateTime(2018,7,28,13,40,0)//28 - July - 2018 13:40:00
};

List<double> dbl = dt.Select(d => d.ToOADate()).ToList();
DateTime startDate = new DateTime(2018, 7, 27, 12, 15, 0);
double startDateDbl = (new DateTime(startDate.Year, startDate.Month, startDate.Day, 0, 0, 0)).ToOADate();
List<double> filteredDates = dbl.Where(d => d >= startDateDbl).ToList();
List dt=新列表
{
新日期时间(2018,7,26,14,0,0),//2018年7月26日14:00:00
新日期时间(2018,7,27,12,9,0),//27-July-2018 12:09:00
新日期时间(2018,7,27,12,10,0),//27-July-2018 12:10:00
新日期时间(2018,7,27,12,15,0),//27-July-2018 12:15:00
新日期时间(2018,7,28,12,50,0),//28-July-2018 12:50:00
新日期时间(2018,7,28,13,40,0)//28-July-2018 13:40:00
};
List dbl=dt.Select(d=>d.ToOADate()).ToList();
DateTime startDate=新的日期时间(2018,7,27,12,15,0);
double startDateDbl=(新的日期时间(startDate.Year,startDate.Month,startDate.Day,0,0)).ToOADate();
List filteredates=dbl.Where(d=>d>=startDateDbl.ToList();