mka*_*car 1 c# sharepoint sharepoint-2007 sharepoint-2010

亲爱的大家,
我的列表包含日期/时间项目,我希望获得最大的日期值.以我为例,2012年5月1日是今天的最近一天?如何比较这些值并使用C#获取最新值?我在代码中访问了列表和项目;
using (SPWeb web = SPContext.Current.Site.RootWeb)
{
SPList alertList = web.Lists["Alert Status"];
if (alertList != null)
{
foreach (SPListItem alertItem in alertList.Items)
{
DateTime startDate = (DateTime)alertItem["Alert Date"];
}
}
}
Run Code Online (Sandbox Code Playgroud)
我建议使用CAML查询检索和排序项目.您可以使用SPQuery类:
SPList list = web.Lists["Alert Status"];
SPQuery query = new SPQuery();
query.Query = @"<OrderBy><FieldRef Name='Alert_x0020_Date' Ascending='FALSE' /></OrderBy>";
query.RowLimit = 1;
SPListItemCollection items = list.GetItems(query);
return items.Count == 0 ? DateTime.MinValue : (DateTime) items[0]["Alert Date"];
Run Code Online (Sandbox Code Playgroud)
如果列表中有很多项目,SPList.Items则非常慢,因为所有项目都是从数据库中提取的.
更新:
你不应该处置SPContext.Current.Site.RootWeb.稍后可能会被其他代码引用.使用该规则仅将您打开的对象作为指导处理.有关更多信息,请参阅处置对象.