4

ArrayList次のフィールドを含むオブジェクトを含むC#があります。に約10個のオブジェクトがありArrayListます。私の問題は、DateTime変数であるシステムで利用可能なものにArrayList基づいてソートする必要があることです。StartDate

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>使用IComparableして並べ替えることができます。IComparer

于 2012-12-10T07:33:05.530 に答える