LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#基础之数据结构

admin
2024年3月26日 18:56 本文热度 609
数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构存储结构

逻辑结构指数据元素之间的前后关系。包括集合(同属一个集合)、线性结构(一对一的相互关系)、树形结构(一对多的相互关系、图形结构(多对多的相互关系

存储结构:数据在计算机存储空间中的存放形式。常用的存储结构有顺序存储、链式存储、索引存储和哈希存储等。

本章介绍C#常用的数据结构类型,我们一起来学习。

字符串

字符串是值为文本的 String 类型对象。文本在内部存储为 Char 对象的依序只读集合。String是引用型,且使用频率非常高的引用类型。

字符串的一些示例:

// 声明字符串变量并赋值string content = "C#语言基础";// 声明字符串变量并赋值为null,若访问则会导致异常string nullContent = null;
//声明字符串变量并赋值为空字符串,长度为零string emptyContent = string.Empty;//声明字符串变量并赋值为空字符串,长度为零string emptContent = "";

属性与常用方法


数组

数组是将同一类型的多个变量存储在一个数组数据结构中。通过指定的索引来访问数组的元素。数组从零开始建立索引,即数组索引从零开始。数组包括一维数组、多维数组和交错数组。
数组具有以下属性:
1、声明数组变量时设置维度数。
2、交错数组是数组数组,每个成员数组的默认值为null。
3、数组从零开始编制索引,包含 n 元素的数组从 0 索引到 n-1。
4、数组元素可以是任何类型,其中包括数组类型。
5、数组类型是从抽象的基类型 Array 派生的引用类型。

数组的一些示例:
// 声明一个由5个整数组成的一维数组int[] singleArray = new int[5];
// 声明和设置数组元素值int[] setSingleArray = [1, 2, 3, 4, 5, 6];
// 声明一个二维数组int[,] multiDimensionalArray = new int[2, 3];
// 声明和设置二维数组元素值int[,] setMultiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// 声明一个交错数组int[][] jaggedArray = new int[6][];// 设置交错数组结构中第一个数组的值。jaggedArray[0] = [1, 2, 3, 4];// 访问元素for (int i = 0; i < setSingleArray.Length; i++){    Console.WriteLine(list[i]);}

一维数组:是一系列相似元素。可以通过其索引访问元素。索引是序列中的顺序位置,数组中的第一个元素位于索引0。

多维数组:具有多个维度。对于多维数组,遍历元素的方式为:首先递增最右边维度的索引,然后是它左边的一个维度,以此类推,向最左的索引遍历元素。

交错数组:是一个数组,其元素是数组,大小可能不同。交错数组有时称为“数组的数组”。


集合

集合与数组比较类似,都用于存放一组值,但集合中提供了特定的方法能直接操作集合中的数据,并提供了不同的集合类来实现特定的功能。集合可以动态的对集合的长度进行定义和维护。所有集合类或与集合相关的接口命名空间都是 System.Collection。
可索引集合:是一个可以使用其索引访问每个元素的集合。索引是序列中在它之前的元素数。
示例:
// 声明一个集合
List<string> fruits = ["apple", "pear", "peach", "strawberry"];
// 循环访问每个元素
foreach (var fruit in fruits){
    Console.Write(fruit + " ");
}

键值对集合: 使用字典集合,可通过使用每个元素的键访问集合中的元素。每次对字典的添加都包含一个值和与其关联的键。
示例:
// 声明一个字典集合变量
Dictionary<string, string> elements = new Dictionary<string, string>();
elements.Add("A", "90");
elements.Add("B", "80");
elements.Add("C", "70");
// 循环访问每个键值
foreach (string element in elements.Keys){
    Console.WriteLine("key: " + element);
    Console.WriteLine("values: " + elements[element]);
}

泛型

泛型是为所存储或使用的一个或多个类型具有占位符(类型形参)的类、结构、接口和方法。泛型集合类可以将类型形参用作其存储的对象类型的占位符;类型形参呈现为其字段的类型和其方法的参数类型。泛型方法可将其类型形参用作其返回值的类型或用作其形参之一的类型。 

// 定义泛型类public class GenClass<T>{   // 定义泛型属性    public T Genname { get; set; }}

public class A{    // 定义泛型方法    public T Go<T>(T arg)    {        T temp = arg;        // 返回        return temp;    }}
// 调用GenClass<string> gString = new GenClass<string>();gString.Genname = "A string";
GenClass<int> gInt = new GenClass<int>();gInt.Genname = 12;


术语

1、泛型类型定义是用作模板的类、结构或接口声明,带有可包含或使用的类型的占位符。

2、泛型类型参数或类型参数)是泛型类型或方法定义中的占位符。

3、构造泛型类型(或 构造类型是为泛型类型定义的泛型类型形参指定类型的结果。

4、泛型类型实参是被泛型类型形参所替代的任何类型。

优点

1、类型安全,泛型将类型安全的负担从你那里转移到编译器。

2、性能更好,无需对值类型进行装箱。

3、简化动态生成代码。

4、代码更少且可以更轻松地重用代码

缺点

1、不支持上下文绑定的泛型类型。

2、枚举不能具有泛型类型形参。

3、轻量动态方法不能是泛型。

***后续将对泛型详解介绍***


小结

 以上对C#常用的字符串、数组、集合、泛型数据结构类型进行了介绍,希望对大家的学习C#基础知识有一定的参考借鉴价值。


该文章在 2024/3/26 18:56:09 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved