C# Linq查询按时间跨度选择小于;x";

C# Linq查询按时间跨度选择小于;x";,c#,linq,C#,Linq,我如何选择具有Timespan类型的计算列的记录,其中我只希望选择Timespan大于某个数量的记录 MyRecords.Where(e=>e.Hours>0) 其中,Hours通过从endtime列减去starttime列计算得出。 上述代码返回: 运算符“>”不能应用于“System.TimeSpan”和“int”类型的操作数 尝试: 尝试: 尝试: 尝试: 那么: MyRecords.Where(e => e.Hours.HasValue && e.Ho

我如何选择具有Timespan类型的计算列的记录,其中我只希望选择Timespan大于某个数量的记录

MyRecords.Where(e=>e.Hours>0)
其中,Hours通过从endtime列减去starttime列计算得出。 上述代码返回:

运算符“>”不能应用于“System.TimeSpan”和“int”类型的操作数

尝试:

尝试:

尝试:

尝试:

那么:

MyRecords.Where(e => e.Hours.HasValue && e.Hours.Value.Hours > 0);
那么:

MyRecords.Where(e => e.Hours.HasValue && e.Hours.Value.Hours > 0);
那么:

MyRecords.Where(e => e.Hours.HasValue && e.Hours.Value.Hours > 0);
那么:

MyRecords.Where(e => e.Hours.HasValue && e.Hours.Value.Hours > 0);

不能直接将TimeSpan对象与int进行比较,需要使用TimeSpan上的一个属性:

例如
MyRecords.Where(e=>e.Hours.HasValue&&e.Hours.Value.millides>0)

e.Hours.HasValue
e.Hours.Value
是必需的,因为e实际上是
TimeSpan?
类型,这是一种可为空的类型


我建议将计算列
e.Hours
重命名为更具描述性的列,因为它代表的是
TimeSpan?
而不仅仅是几个小时。

您不能直接将TimeSpan对象与int进行比较,您需要使用TimeSpan上的一个属性:

例如
MyRecords.Where(e=>e.Hours.HasValue&&e.Hours.Value.millides>0)

e.Hours.HasValue
e.Hours.Value
是必需的,因为e实际上是
TimeSpan?
类型,这是一种可为空的类型


我建议将计算列
e.Hours
重命名为更具描述性的列,因为它代表的是
TimeSpan?
而不仅仅是几个小时。

您不能直接将TimeSpan对象与int进行比较,您需要使用TimeSpan上的一个属性:

例如
MyRecords.Where(e=>e.Hours.HasValue&&e.Hours.Value.millides>0)

e.Hours.HasValue
e.Hours.Value
是必需的,因为e实际上是
TimeSpan?
类型,这是一种可为空的类型


我建议将计算列
e.Hours
重命名为更具描述性的列,因为它代表的是
TimeSpan?
而不仅仅是几个小时。

您不能直接将TimeSpan对象与int进行比较,您需要使用TimeSpan上的一个属性:

例如
MyRecords.Where(e=>e.Hours.HasValue&&e.Hours.Value.millides>0)

e.Hours.HasValue
e.Hours.Value
是必需的,因为e实际上是
TimeSpan?
类型,这是一种可为空的类型

我建议将计算列
e.Hours
重命名为更具描述性的列,因为它代表的是
TimeSpan?
而不仅仅是几个小时