4

我有一个ArrayList包含以下字段的对象的 C#。我在ArrayList. 我的问题是我需要ArrayList根据StartDate系统中可用的 DateTime 变量进行排序。

public int id { get; set; }
public string title {get; set;}
public bool allDay { get; set; }
public string start { get; set; }
public string end { get; set; }
public string color { get; set; }
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
public string Location { get; set; }
public string StartDatestr { get; set; }
public string EndDatestr { get; set; }
public string StartTime { get; set; }
public string EndTime { get; set; }
public bool Alert { get; set; }
public bool Repeat { get; set; }
public Int32 RepeatDays { get; set; }
public Int32 CalendarID { get; set; }
public int CustomerNo { get; set; }
public string CustomerName { get; set; }
public bool IsProspect { get; set; }
public string Description { get; set; }

有人可以启发我吗?我试过.Sort()了,但它什么也没做(它的转储尝试排序ArrayList有我知道的对象)。

提前致谢。

更新:

List<Appointment> appointments = new List<Appointment>();

我创建了List如上。现在我可以排序了吗?

4

2 回答 2

6

尝试通过创建如下比较

public class ComparerDateTime : IComparer
{
    public int Compare(object x, object y)
    {
        MYCLASS X = x as MYCLASS;
        MYCLASS Y = y as MYCLASS;

        return X.date.CompareTo(Y.date);
    }
}

 MYCLASSList.Sort(new ComparerDateTime ());

或者

创建通用集合而不是您可以执行此操作

尝试Enumerable.OrderBy操作将为您工作..您需要为此包含 linq

IEnumerable<Pet> query = arrayList .OrderBy(x=> x.startDate );

如果创建的列表如下所示,则尝试使用 linq 选项

List<MYCLASS> arrayList  = new List<MYCLASS>();
于 2012-12-10T07:20:40.353 回答
1

您应该尝试将该组属性放入一个类中,然后创建一个泛型List<NewClass>,然后您可以使用IComparableIComparer按特定字段排序。

于 2012-12-10T07:33:05.530 回答