繁体   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