Sharepoint组合多个日历spquery数组列表排序

本文关键字:数组 列表 排序 spquery 日历 组合 Sharepoint | 更新日期: 2023-09-27 18:12:27

在我的代码中,我将所有日历事件存储在一个名为"arlist"的数组列表中。我想排序的数组列表的事件开始日期,所以所有的事件排序。对数组列表如何排序有什么想法吗?

谢谢!J

foreach (SPWeb web in CurrentSiteCollection.AllWebs)
        {
            SPListCollection weblists = web.Lists;
            try
            {
                SPList Calist = weblists["Calendar"];
                SPQuery Iquery = new SPQuery();
                Iquery.ExpandRecurrence = true;
                Iquery.Query = "<Where><And><Eq><FieldRef Name='IsPublic'/>" +
                   "<Value Type= 'bit'>1</Value></Eq>" +
                   "<DateRangesOverlap><FieldRef Name='"EventDate'" /><FieldRef  Name='"EndDate'" /><FieldRef Name='"RecurrenceID'" />" +
                   "<Value Type='"DateTime'"><Month /></Value></DateRangesOverlap>             </And></Where>";
                Iquery.CalendarDate = sdate;
                SPListItemCollection gItems = Calist.GetItems(Iquery);
                if (gItems.Count > 0)
                {
                    arlist.Add(gItems);
                    urlist.Add(string.Format("{0}/{1}?   ID=",Calist.ParentWebUrl,Calist.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url));
                }
            }
            catch (Exception)
            { }

Sharepoint组合多个日历spquery数组列表排序

为什么不用泛型集合代替ArrayList呢?

声明
 List<SPListItem> arlist = new List<SPListItem>();

这样做

foreach (SPListItem Item in gItems) {
arlist.Add(Item);
}

代替arlist.Add(gItems);

最后,当你循环遍历所有子网站并添加所有事件时,像这样排序

arlist.OrderBy((x) => x.Item("EventDate"));

不要忘记添加命名空间system.collections.generic.