簡體   English   中英

如何對 ArrayList(int) 進行排序

[英]How to sort ArrayList(int)

如何按升序和降序對Arraylist進行排序。 例子。

ArrayList list= new ArrayList();
list.Add(2);
list.Add(8);
list.Add(0);
list.Add(1);

如何按升序和降序對上述列表進行排序?

您可以使用list.Sort()進行升序。 對於降序,您需要通過實現IComparer來反轉順序。 這樣的事情會做:

// calling normal sort:
ArrayList ascendingList = list.Sort();

// calling reverse sort:
ArrayList descendingList = list.Sort(new ReverseSort());

// implementation:
public class ReverseSort : IComparer
{
    public int Compare(object x, object y)
    {
        // reverse the arguments
        return Comparer.Default.Compare(y, x);
    }

}

請注意,就像 Jon Skeet 在主要問題下的評論線程中提到的那樣,您根本不需要使用無類型的 ArrayList。 相反,您可以使用通用的List<T> ,它是類型安全的,並且更加通用。

ArrayList 包含一個排序方法。 (編輯刪除不正確的 .NET 信息)

您可以使用 list.Sort() function。 請參閱此處的示例http://msdn.microsoft.com/ru-ru/library/0e743hdt.aspx

你可以使用ArrayList.Sort 方法

在這里使用數組列表而不是List<int>是危險的,但是,這是您要查找的內容:

System.Collections.ArrayList al = new System.Collections.ArrayList();
al.Add(5);
al.Add(3);
al.Add(1);
al.Add(4);
al.Add(0);
al.Sort();

foreach (var x in al)
{
    Console.WriteLine(x.ToString());
}

al.Sort(new DescendingIntSorter());

foreach (var x in al)
{
    Console.WriteLine(x.ToString());
}



public class DescendingIntSorter : System.Collections.IComparer
{
    public int Compare(object x, object y)
    {
        return ((int)y).CompareTo((int)x);
    }
}

list.Sort() 將對它們進行排序,但我建議使用 List<> 和 Collections 進行排序。 避免使用 ArrayList imo。

對於升序列表,您可以使用 list.Sort()

對於降序列表,有一個簡單的方法可以做到!

您可以像這樣執行降序列表:

list.Sort();
list.Reverse();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM