没有 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 方法中获得的每一项,并将其插入正确的位置:在大于或等于的最后一个元素与第一个元素之间元素,它更小。
当然,如果列表为空,或者没有比您添加的元素更大的元素,那么您只需将该元素追加到最后一个可用位置即可。

既然是作业,就让你自己写代码吧。