数组
数组的局限性
学习数组的集合类1.数组长度的不变性(一旦确定数组就确定了长度),如果想动态的调整数组的长度就需要用到arraylist,如果定义了长度为2的数组,如果超出长度就会出现越界异常
/**
*
*
* 学习数组的集合类1.数组长度的不变性(一旦确定数组就确定了长度)
*
* arraylist
*
*
*
*
* **/
using System;
namespace arr
{
class MainClass
{
public void test()
{
int[] intarray = new int[2];
intarray[0] = 12;
intarray[1] = 232;
//输出类容
for (int i = 0; i < intarray.Length; i++)
{
Console.WriteLine(intarray[i]);
}
}
public static void Main(string[] args)
{
MainClass obj = new MainClass();
obj.test();
}
}
}
arraylist
引入集合类名空间
using System.Collections;//集合类名空间
通过实例化对象来实例化一个arraylist
ArrayList al = new ArrayList();
ArrayList al = new ArrayList(100);//也可以提前的开辟空间大小
通过arraylist.Add();来增加元素(可以动态的改变长度,无序程序员来维护)
arraylist可以放入任意类型的数据
arraylist.Add(num)在集合末尾添加num
arraylist.RemoveAt(num);//按照下标删除
arraylist.Remove(num);//按照数值删除
arraylist.Clear();//清除数据
arraylist.Insert(插入位置,插入数值);//在指定位置插入指定数值。
/**
*
*
* 学习数组的集合类1.数组长度的不变性(一旦确定数组就确定了长度)
*
* arraylist
*
*
*
*
* **/
using System;
using System.Collections;//集合类名空间
namespace arr
{
class MainClass
{
public void test2()
{
ArrayList al = new ArrayList();
al.Add(11);
al.Add(22);
al.Add(33);
al.Add(444);
al.Add(55);
al.Add(666);
al.Add(77);
al.Add(88);
//插入元素方法
al.Insert(2,888);//在集合索引下标为2的位置上,插入888数值
//删除数据
al.RemoveAt(1);//按照下标删除
al.Remove(444);//按照数值删除
//清除数据
al.Clear();
//显示集合中的数据
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(al[i]);
}
}
public static void Main(string[] args)
{
MainClass obj = new MainClass();
obj.test2();
}
}
}
foreach(遍历方式)
foreach (var item in collection)
{
}
可以直接遍历整个数组
foreach缺点:不能修改数组里面的元素,比如不能在foreach大括号里面添加al.RemoveAt(1);al.Remove(444);al.Add(88);等语句
hashtable
/**
*
*
*
* 键值对
* 主要用于查找
*
*
*
*
* **/
using System;
using System.Collections;
namespace hashtable
{
class MainClass
{
public void test1()
{
Hashtable ht = new Hashtable();
ht.Add("liuguozhu","刘老师的个人信息");
ht.Add("sjy", "sjy的个人信息");
ht.Add("zhangsan", "张三的个人信息");
ht.Add("slisi", "s李四的个人信息");
//查找
Console.WriteLine(ht["sjy"]);
//遍历键
foreach (string item in ht.Keys)
{
Console.WriteLine(item);
}
//遍历值
foreach (string item in ht.Values)
{
Console.WriteLine(item);
}
}
public void test2()
{
Hashtable ht = new Hashtable();
person per = new person("sjy",180,70);
person per2 = new person("liuguozhu", 170, 70);
person per3 = new person("zhangsan", 160, 70);
person per4 = new person("lisi", 150, 70);
ht.Add("liuguozhu", per);
ht.Add("sjy", per2);
ht.Add("zhangsan", per3);
ht.Add("slisi", per4);
//遍历值
foreach (person item in ht.Values)
{
Console.WriteLine(item.StrName);
Console.WriteLine(item.IntHeight);
Console.WriteLine(item.InWeight);
}
}
public static void Main(string[] args)
{
MainClass obj = new MainClass();
obj.test2();
}
}
}
namespace hashtable
{
public class person
{
private string _StrName;
private int _IntHeight;
private int _IntWeight;
public string StrName
{
get { return _StrName; }
set { _StrName = value; }
}
public int IntHeight
{
get { return _IntHeight; }
set { _IntHeight = value; }
}
public int InWeight
{
get { return _IntWeight; }
set { _IntWeight = value; }
}
public person (string name,int height,int weight)
{
_StrName = name;
_IntHeight = height;
_IntWeight = weight;
}
}
}
二维数组
private int[,] CardsArray = new int[4,5];
// Start is called before the first frame update
void Start()
{
CardsArray[0, 0] = 10;
CardsArray[0, 1] = 20;
for (int i = 0; i < 4; i++)
{
for (int j= 0; j < 5; j++)
{
Debug.Log(CardsArray[i,j]);
}
}
}