首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于Llist的有关问题

2013-07-09 
关于Llist的问题想问一下,C#List的元素排列顺序是按照添加的顺序排列的吗(不进行人工排序的情况下)?如果是

关于Llist的问题
想问一下,C#List的元素排列顺序是按照添加的顺序排列的吗(不进行人工排序的情况下)?
如果是按照添加顺序排列的话,我删除第一个元素后,剩下的元素会重新排序吗?

我主要想做一个队列,以前C里是用链表做的,但是到C#一想有个List可以动态添加元素,兴许可用,但是不知道如果默认不做改动的话,是不是就像队列一样,先添加的排在前,后添加的排在后,删除第一个元素,后面的依次上浮一位。

第一次用C#,求前辈们指点指点啊,不然又要写成链表样或者定长数组样的好不爽。
[解决办法]
C#里有现成的Queue类型,不需要自己去实现。
[解决办法]

 public void test()
        {
            List<int> l = new List<int>();
            for (int i = 0; i < 5; i++)
            {
                l.Add(i);
            }
            l.Remove(0);
            int e=l[0];
           
        }


自己试一下喽
[解决办法]
我删除第一个元素后,剩下的元素会重新排序吗?
不会

是不是就像队列一样,先添加的排在前,后添加的排在后,删除第一个元素,后面的依次上浮一位。
是的

为什么自己不写个小demo试试看呢
List<int> list = new List<int>();
list.Add(1);
list.Add(5);
list.Add(3);
list.Add(9);
list.Add(2);

[解决办法]
你说的是泛型的 List<T>?
 public void Add(T item)
        {
            if (this._size == (int)this._items.Length)
            {
                this.EnsureCapacity(this._size + 1);
            }
            T[] tArray = this._items;


            List<T> list = this;
            int num = list._size;
            int num1 = num;
            list._size = num + 1;
            tArray[num1] = item;
            List<T> list1 = this;
            list1._version = list1._version + 1;
        }


这是List<T> Add 方法的反编译.
是没有顺序的哈.
你要链表有 "LinkedList",你要排序的表有 SortedList...
你要看你具体是想要什么类型哈....

热点排行