Linq,其中自定义类列表与一年中小时数的两个DateTime值进行比较
本文关键字:两个 DateTime 比较 小时 列表 自定义 一年 Linq | 更新日期: 2023-09-27 18:21:48
我有一个自定义类的列表,我正试图从该列表中创建一个新列表,在该列表中我需要返回以当前年份的小时为单位的日期范围。我一直在尝试以下操作,但它返回的列表为零:
List<Core.tokenHistory> firstQuery = thl.Where(x =>
x.Date.Value.DayOfYear * 24 + x.Date.Value.Hour > day.Value.DayOfYear * 24 &&
x.Date.Value.DayOfYear * 24 + x.Date.Value.Hour < (day.Value.DayOfYear + 1) * 24)
.ToList();
这让我很沮丧,因为我前一天还以为这段代码能正常工作,或者这可能只是因为我在睡眠不足的情况下编程。
编辑:我已经将原始语句更改为使用DateTime的实际语句?而不是DateTime,这是我正在使用的自定义类:
public class tokenHistory
{
DateTime? _date;
string _action;
string _recipient;
int _tokens;
int _balance;
public tokenHistory(DateTime? date, string action, string recipient, int tokens, int balance)
{
this._date = date;
this._action = action;
this._recipient = recipient;
this._tokens = tokens;
this._balance = balance;
}
public DateTime? Date { get { return _date; } set { _date = value; } }
public string Action { get { return _action; } set { _action = value; } }
public string Recipient { get { return _recipient; } set { _recipient = value; } }
public int Tokens { get { return _tokens; } set { _tokens = value; } }
public int Balance { get { return _balance; } set { _balance = value; } }
}
如果您第一次查询的列表跨越了多年,那么这是不可能的。我现在正在创建我自己的类,其中包含两个int,一个表示小时,一个用于年份。我不敢相信我花了一整天的时间才意识到这一点。。。