簡體   English   中英

沒有LINQ和SORT的C#排序列表

[英]C# Sorted list without LINQ and SORT

我的問題是,是否可以創建一個列表,將這些對象放在其中后對其中的對象進行排序?

一無所獲后,我做了一個新的鏈表。 唯一的任務是使該列表按其將包含的對象的字符串字段排序,同時保持可教導性。

我有以下代碼:

class LancoltLista<T> : IEnumerable
{
    class ListaElem
    {
        public T tartalom;
        public ListaElem kovetkezo;
    }
    ListaElem fej;
    public void ElejereBeszuras(T elem)
    {
        ListaElem uj = new ListaElem();
        uj.tartalom = elem;
        uj.kovetkezo = fej;
        fej = uj;
    }

    public void VegereBeszuras(T elem)
    {
        if (fej == null)
        {
            ElejereBeszuras(elem);
        }
        else
        {
            ListaElem e = fej;
            while (e.kovetkezo != null)
            {
                e = e.kovetkezo;
            }
            ListaElem uj = new ListaElem();
            uj.tartalom = elem;
            e.kovetkezo = uj;
        }
    }

    public IEnumerator GetEnumerator()
    {
        return new ListaBejaro(fej);
    }

    class ListaBejaro : IEnumerator<T>
    {
        ListaElem elso, jelenlegi;

        public ListaBejaro(ListaElem elso)
        {
            this.elso = elso;
            jelenlegi = null;
        }


        public bool MoveNext()
        {
            if (jelenlegi == null)
            {
                jelenlegi = elso;
            }
            else
            {
                jelenlegi = jelenlegi.kovetkezo;
            }
            return jelenlegi != null;
        }

        public void Reset()
        {
            jelenlegi = null;
        }

        object IEnumerator.Current
        {
            get { return this.jelenlegi.tartalom; }
        }

        public T Current
        {
            get { return this.jelenlegi.tartalom; }
        }

        public void Dispose()
        {
            elso = null;
            jelenlegi = null;
        }
    }
}

這里的問題是我無法比較p.kulcs和kulcs。

對於現實世界的應用程序,您可以使用內置的SortedList<T>

對於家庭作業,您將必須對照整個列表檢查在add方法中獲得的每個項目,並將其插入正確的位置:介於大於或等於的最后一個元素與小於等於的第一個元素之間,然后。
當然,如果列表為空,或者沒有元素大於添加的元素,則只需將元素追加到最后一個可用位置。

由於這是家庭作業,因此我將讓您自己編寫代碼。

暫無
暫無

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

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