C# 获取最接近当前日期的项目
在我的数据库中,我有一个具有以下属性的项目列表:C# 获取最接近当前日期的项目,c#,list,datetime,C#,List,Datetime,在我的数据库中,我有一个具有以下属性的项目列表: public System.DateTime CARD_OF_DAY_DATE_CREATED { get; set; } 我需要获取创建的CARD_OF_DAY_DATE_最接近DateTime的项目。现在使用c。我可以做大量的for/foreach循环,但我想知道是否有一个好的、有效的方法来处理任何事情 注意:创建的CARD\u OF_DAY\u DATE\u字段只需检查forward,这意味着检查创建的CARD\u OF_DAY\u DA
public System.DateTime CARD_OF_DAY_DATE_CREATED { get; set; }
我需要获取创建的CARD_OF_DAY_DATE_
最接近DateTime的项目。现在使用c
。我可以做大量的for/foreach循环,但我想知道是否有一个好的、有效的方法来处理任何事情
注意:创建的CARD\u OF_DAY\u DATE\u
字段只需检查forward,这意味着检查创建的CARD\u OF_DAY\u DATE\u是否在昨天是不相关的,因为这些项目不在列表中。使用LINQ:
var item = list
.Where(i => i.CARD_OF_DAY_DATE_CREATED > DateTime.Now)
.OrderBy(i => i.CARD_OF_DAY_DATE_CREATED)
.First();
这取决于收集情况,没有任何假设,您只能为每个人做大量的工作。事情是不同的,例如,如果它是一个有序的列表,你可以选择一个存储过程,也许…是的,很好!我想那很好:)我会试试看!First()。OP一定知道这一点,因为他问“…可以为/foreach循环做大量的工作,但我想知道是否有一个好的、高效的…”语法是一回事,但如果您有任何东西可以提供@Adriano,我很乐意看到it@HerveS为了保持良好的语法(然后是枚举的性能损失),我将使用list.Where(x=>x.CARD\u OF_DAY\u DATE\u CREATED>DateTime.Now).Min(x=>x.CARD\u OF_DAY\u DATE\u CREATED)
。如果您只对最小值感兴趣,则无需排序。。。