美文网首页
C# 数组、列表、字符串

C# 数组、列表、字符串

作者: 李霖弢 | 来源:发表于2019-10-22 20:37 被阅读0次

数组 Array

数组是一个同一类型变量的集合。
Array在创建时候即分配好了存储空间,之后无法再改变长度。

通过.Length属性可以获得数组所有维度元素数量之和

数组声明
datatype[] arrayName;
数组赋值

使用new创建数组实例
当数组初始化时,每个元素会根据类型隐式初始化为一个默认值。例如,int 数组的所有元素都会被初始化为 0。

double[] balance = new double[10];
balance[0] = 4500.0;

或在声明的同时进行初始化/赋值。

double[] balance = { 2340.0, 4523.69, 3421.0};
var arr = new[] { 1, 10, 100, 1000 };

使用数组初始值设定项

int[] marks = new int[5]  { 99,  98, 92, 97, 95};
//此时可以省略数组的大小,比如:
int[] marks = new int[]  { 99,  98, 92, 97, 95};

将一个数组赋值给另一个数组时,目标和源会指向相同的内存位置:

int[] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;
多维数组和交错数组

多维数组每一行都是固定的,交错数组的每一行可以有不同的大小

  • 二维数组
int [,] a = new int [3,4] {
 {0, 1, 2, 3} ,   /*  初始化索引号为 0 的行 */
 {4, 5, 6, 7} ,   /*  初始化索引号为 1 的行 */
 {8, 9, 10, 11}   /*  初始化索引号为 2 的行 */
};
int val = a[2,3];//11
  • 交错数组
    交错数组是数组的数组。交错数组是一维数组。类似JS的嵌套数组。
int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{
   scores[i] = new int[4];
}

或直接赋值

int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};
参数数组
public int AddElements(params int[] arr)
{
  int sum = 0;
  foreach (int i in arr)
  {
    sum += i;
  }
  return sum;//2938
}
...
AddElements(512, 720, 250, 567, 889)
数组方法
  • 判断数组中位置
    Array.IndexOf( arr , item )

ArrayList

引入命名空间:using System.Collections;
ArrayList中长度是动态的,且可插入不同类型的数据。因为ArrayList会把所有插入其中的数据当作为object类型来处理,在存储或检索值类型时通常发生装箱和取消装箱操作,带来很大的性能耗损。

通过.Count属性可以获得ArrayList元素数量

声明
ArrayList arrayListTest = new ArrayList();
ArrayList arrayListTest = new ArrayList(5);
var arrayListTest = new ArrayList<string> { "name", "Ana", "Felipe" };
ArrayList arrayListTest = new ArrayList(ArrayOrArrayList);
添加元素
  • 在末尾添加元素 .Add() 和 .AddRange()
intArrayList.Add(50);
intArrayList.AddRange(new int[] { 2,2,2 });
  • 指定位置添加 .Insert() 和 .InsertRange()
intArrayList.Insert(0,50);
intArrayList.InsertRange(0,new int[] { 2,2,2 });
删除元素 .RemoveAt() 和 .RemoveRange() .Remove()

删除后,后方元素会前移,因此需注意越界问题

intArrayList.RemoveAt(0);
intArrayList.RemoveRange(0,2);//删除第0,1个
intArrayList.Remove("hello");//删除第一个遇到的"hello"

列表 List<T>

引入命名空间:using System.Collections.Generic;
List具有与ArrayList相似的属性和方法,但在声明List集合时,需要为其声明List集合内数据的对象类型。
List避免了拆装箱并保证了类型安全,因此是最推荐使用的。

List<string> list = new List<string>();
var list = new List<string> { "name", "Ana", "Felipe" };
var list = new List<int>(ArrayOrList);
查找位置 .IndexOf()
排序 .Sort() (改变原值)

字符串 String

可以通过以下方法创建字符串

  1. 通过给 String 变量指定一个字符串
  2. 通过使用 String 类构造函数
char[] letters = { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters); 
  1. 通过使用字符串串联运算符( + )
  2. 通过检索属性或调用一个返回字符串的方法(如String.Join)
  3. 通过格式化方法来转换一个值或对象为它的字符串表示形式(如String.Format)

相关文章

  • 判断为空

    C# 字符串为空 数组为空

  • C# 数组、列表、字符串

    数组 Array 数组是一个同一类型变量的集合。Array在创建时候即分配好了存储空间,之后无法再改变长度。 通过...

  • Unity 学习,C#基础学习

    包含,C#字符串,枚举,集合,数组以及类,属性的设置 C#基本数据类型代码一:字符串!using UnityEng...

  • 【python】一些好用的方法(持续更新)

    将列表组成字符串 声明列表并插入数据(类似C中的数组) 将字符串按分成一定数量的列表 截取字符串 删除列表中的空值...

  • Python序列

    一、列表 Python序列类型有7种:字符串、Unicode字符串、列表、元组、字节数组、buffer对象、xra...

  • JavaScript代码规范

    JavaScript规范 内容列表 类型 对象 数组 字符串 函数 属性 变量...

  • txt读写

    文件打开 读文件 读取字符串 按行读取整个文件 写文件 字符串写入txt 列表写入文件 双层列表写入文件 数组写入文件

  • flutter【2】dart语言--内置数据类型

    内置类型 数值型 字符串 布尔型 列表/数组 Map runes(表示字符串中的 unicode 字符) symb...

  • 我的Python学习之旅5

    2017.2.5 10. 列表——一个打了激素的数组数组中的内容必须类型一致,列表在可以鱼龙混杂。 s为字符串s....

  • python 列表中[ ]中冒号‘:’的作用

    中括号[ ]:用于定义列表或引用列表、数组、字符串及元组中元素位置 冒号: 用于定义分片、步长。a[ : n]表示...

网友评论

      本文标题:C# 数组、列表、字符串

      本文链接:https://www.haomeiwen.com/subject/tnecvctx.html