我创建了一个代表项目的简单类:
public class EntityAuftrag
{
public string cis_auftrag { get; set; }
public string bezeich { get; set; }
public DateTime? dStart { get; set; }
public DateTime? dEnd { get; set; }
public decimal? aufstunde { get; set; }
public int id_auftrag { get; set; }
public string barcolor { get; set; }
}
现在我有一份清单。我想提取最小的日期,我该怎么做?
答案 0 :(得分:26)
您可以使用Enumerable.Min
(null
值将被忽略,除非所有值都为空):
DateTime? smallest = auftragList.Min(a => a.dStart);
修改:如果您想查找具有最早(开始)日期的对象,可以使用OrderBy
和First
:
EntityAuftrag auft = auftragList.OrderBy(a => a.dStart).First();
如果您想要最新日期,可以改用Enumerable.OrderByDescending
。
答案 1 :(得分:4)
您可以使用Min()LINQ扩展方法:
collection.Min(item => item.dStart);
我看到你的日期属性可以为空,所以如果你想避免空值,请使用以下内容:
collection.Where(item=> dStart.HasValue).Min(item => item.dStart);
答案 2 :(得分:1)
你可以简单地用Linq做到这一点。鉴于您希望对象具有最早的dStart
,您可以执行以下操作:
List<EntityAuftrag> list = someSourceOfItems;
EntityAuftrag firstObject = list.OrderBy( i => i.dStart ).First() as EntityAuftrag;
或者(不确定上面是否是正确的语法),你可以这样做:
List<EntityAuftrag> list = someSourceOfItems;
EntityAuftrag firstObject = (from item in list
orderby item.dStart
select item).Single() as EntityAuftrag;
享受你的一天: - )