C#与数据结构

数据机构有2种描述:逻辑结构,物理结构/存储结构

1,逻辑结构:数据之间的相互关系。
集合:结构中的数据元素除了同属于一种类型外,别无其它关系。
线性结构:数据元素之间一对一的关系
树形结构:数据元素之间一对多的关系
图状结构或网状结构:结构中的数据元素之间存在多对多的关系

2,物理结构/存储结构:描述数据具体在内存中的存储。
顺序结构:数据元素放在地址连续的存储单元里。
链式结构:数据元素放在任意的存储单元中,存储单元可以是连续的,也可以是不连续的。
索引结构:树状索引查找。https://www.cnblogs.com/kennylu/p/5653231.html 深入浅出理解索引结构
哈希结构:根据关键码值(Key value)而直接进行访问的数据结构。

C#数据结构:
1,[]:
优点:1,索引速度快,修改元素简单。2,数组可以具有多个维度。
缺点:1,必须指定数组的大小,不灵活。2,数组间不利于插入数据。,
2,List:泛型list可以避免装箱拆箱操作。
List与ArrayList 如果里面没有对象不可以使用[]这种方式,包括赋值取值,所以要先add添加数据先。所以一般要判断count的数量。如果>0才使用list[0]去拿到第一个对象。
优点:1,根据下标访问元素效率较高,但不一定安全。2,动态扩充与收缩。3,可以很方便的进行数据的添加,插入和移除。
缺点:1,根据内容查找元素的效率较低。
3,Array:是针对任意类型、固定长度的。一般不会使用。
4,ArrayList:
List与ArrayList 如果里面没有对象不可以使用[]这种方式,包括赋值取值,所以要先add添加数据先。所以一般要判断count的数量。如果>0才使用list[0]去拿到第一个对象。
优点:1,根据下标访问元素效率较高,但不一定安全。2,动态扩充与收缩。3,可以很方便的进行数据的添加,插入和移除。
缺点:1,可以放入任意类型,不是类型安全的。2,值类型存取时有装箱拆箱操作。3,根据内容查找元素的效率较低。
5,dictionary:
Dictionary遍历输出的顺序,就是加入的顺序,这点与Hashtable不同。
优点:1,索引速度非常快。
缺点:
6,哈希表:HashTable中的key/value均为object类型,搜索和检索更为便捷。
7,stack:后进先出。
8,queue:先进先出。
 

其他:
https://www.cnblogs.com/hedianzhan/p/9130296.html C#遍历List并删除某个或者几个元素的方法
如何一次性删除容器中多个对象,比如list,当删除list的第一个元素时,list的count就会自动减1,第2个会自动到第一个的位置,后面的依次向前移动。有2种删除方式:1,从后往前删除。2,用另外一个容器将需要删除的数据保存下来。代码如下:
从后往前删除:简单高效
        List<int> tmpI = new List<int>();
        for (int i = 0; i < 10; i++)
        {
            tmpI.Add(i);
        }
        for (int i = tmpI.Count-1; i >=0; i--)
        {
            if (tmpI[i]==3|| tmpI[i] == 5 || tmpI[i] == 7 || tmpI[i] == 8 || tmpI[i]==9)
            {
                tmpI.Remove(tmpI[i]);
            }
        }


 

猜你喜欢

转载自blog.csdn.net/tran119/article/details/81481921