0
我想知道是否有可能做,如果我可以循環檢查ArrayList是否排序,如果不是,顯示一個消息框?檢查ArrayList是否排序
這是我已經試過:
if (!aList.Sort)
{
MessageBox.Show("The list isn't sorted");
}
我想知道是否有可能做,如果我可以循環檢查ArrayList是否排序,如果不是,顯示一個消息框?檢查ArrayList是否排序
這是我已經試過:
if (!aList.Sort)
{
MessageBox.Show("The list isn't sorted");
}
if (!aList.Sorted)
請注意,如果沒有列表框本身強制執行排序順序,項目可能會「按升序排列」。如果您只想檢查顯示的中的所有項目是否爲,則這是一個不同的問題。
編輯:要檢查一個序列(無論是列表框中的項目還是ArrayList
中的元素,這可能會成爲您真正感興趣的內容),您只需要遍歷它們,並將每個項目與前一項目進行比較。這是更容易使用泛型集合做,但是......
public static bool IsSorted(IEnumerable sequence)
{
// Now assuming that list
using (IEnumerator iterator = sequence.GetEnumerator())
{
if (!iterator.MoveNext())
{
// An empty sequence is always sorted
return true;
}
IComparable previous = (IComparable) iterator.Current;
while (iterator.MoveNext())
{
IComparable next = (IComparable) iterator.Current;
if (next.CompareTo(previous) < 0)
{
return false;
}
previous = next;
}
return true;
}
}
錯誤「System.Collections.ArrayList」不包含「排序」的定義,並沒有擴展方法「排序」接受第一個參數可以找到類型'System.Collections.ArrayList'(你是否缺少使用指令或程序集引用?) – 2013-03-08 03:16:39
你會如何編碼升序? – 2013-03-08 03:17:59
@KevinChun:你說的是一個列表框,而不是'ArrayList'。如果你問的是'ArrayList',那就完全不同了。請在提問時注意準確。 – 2013-03-08 03:19:20