【学习记录】C#常用数据集合(数组、列表、字典)indexof方法

目录

一、数组

创建数组

 数组的常用方法

二、列表list<泛型>

1.列表創建

2.列表常用方法

3.列表總結

三、字典Dictionary

创建字典

字典常用方法


一、数组

创建数组

创建数组的4种方法

第一种

string[] myarray = new string[5];
myarray[0] = "aaa";
myarray[1] = "sss";
myarray[2] = "ddd";
myarray[3] = "fff";
myarray[4] = "qqq";

第二种

string[] Array2={"1","2"};

 第三种

string[] Array3=new string[3]{"1","2","3"};

第四种

string[] Array4=new string[]{"1","2","3","4"};

 数组的常用方法

foreach循环

         /* 输出每个数组元素的值 n是数组 */
         foreach (int j in n )
         {
            int i = j-100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
         }

 random.Next方法

random.Next();//返回非负的一个随机数
random.Next(MaxValue);//返回一个小于所指定最大值的非负随机数

 数组中找查数组元素的 indexOf 方法及使用

string test = "wolfman wolfman wolfmanwolfman";
test.IndexOf('o');//返回1,第一位出现o的下标
test.IndexOf("ma");//返回4,第一位出现的m开头下标
test.IndexOf("mm");//返回-1,没有找到就会返回-1
test.IndexOf("o",2);//返回9,找出o第二次出现的下标
//返回9,从第8位开始,找3位,也就是olf中第一次出现的下标,但该下标是原字符串里的下标
test.IndexOf("o",8,3);

lastindexof() :在字符串中从后向前定位字符和字符串 ,和上面方法一样


 IndexOfAny ||lastindexofany

char[] chr = { 'a','b', 'w' };
string test = "wolfman wolfman wolfmanwolfman";
test.IndexOfAny(chr);//返回0 找第一次列表中出现的w下标
test.IndexOfAny(chr,2);//返回5,找第二个最先出现的字符,第一个找到了w,第二个找到了a,返回了a的下标
test.IndexOfAny(chr,7,5);//返回8,类似,已经不想写了

lastindexofany同上


Reverse数组反转和sort排序

Array.Sort(a);//排序
Array.Reverse(数组名);
int[] a = { 1, 4, 5, 7, 3 };
Array.Sort(a);//排序
Array.Reverse(a);//反转

二、列表list<泛型>

1.列表創建

泛型就是對數據封裝規定數據類型的一種稱呼。

List<int> list = new List<int>();

這樣就創建了一個int類型的列表集合,但目前他是空的集合

/*列表*/

List<int> list = new List<int>() { 22, 33, 44 };

list.Add(99);

list[0] = 11;

for(int i = 0; i < list.Count; i++)

{

Console.WriteLine(list[i]);

}

列表支持數組方式的寫法讀取和賦值。

列表內部數據是使用數組進行儲存的,一個空的列表內部會有一個長度為0的數組,當給列表中添加元素時,列表的容量會扩大為4,添加到第五個時為8,如果添加到第9時扩大為16,以此類推。

2.列表常用方法

當列表中的容量發生改變時,他會創建一個新的數組。使用array.Copy()方法將元素複製到一個新數組中,為了節省時間,如果事先知道要存儲數據的個數,就可以利用初始化函數來指定列表的大小,如:

List<int> list=new List<int>(10);//當容量不夠時按兩倍進行扩大

我們可以通過list.Capacity屬性來獲取和設置容量

list.Capacity=10;

列表操作方法

list.Add(15);//添加一个数字到列表的最后一位
list.Count;//获取列表已用容量
list.Insert(2, 13);//在2号位插入13,2号位以后的内容整体后移一位

list.Remove( 7);//从第一个元素开始从前向后遍历,删除第一个遇到的元素,剩余数据向前移动
list.RemoveAt(0);//删除指定位置的元素
list.RemoveRange(0, 3);//从o号位开始,删除包括该位置在内的三个元素位置

list.IndexOf(6);//从前向后遍历
list.LastIndexOf(6);//从后向前遍历


list.Sort();//从小到大排序

list.Contains(3);//确定3是否存在于列表

3.列表總結

泛型就是指某些數據的多種類型的集合,為該類型定制一個清晰統一是數據類型,定制完畢必須安裝類型規則存入。

三、字典Dictionary


 

创建字典

要使用Dictionary集合,需要导入C#泛型命名空间

using System.Collections.Generic;
Dictionary<string, int> dic = new Dictionary<string, int>();

字典常用方法

//添加元素的方式
dic.Add("user",10001);
dic["pwd"] = 123;

//删除元素
dic.Remove("user");

//判断key是否存在
dic.ContainsKey("user")
//判断是否存在该value
dic.ContainsValue(10001)

//通过指定的key来获取value,如果能获取到,返回true,并且将对应的value放到out参数中p中
int p = 0;
bool result =  dic.TryGetValue("pwd",out p);

//获取字典中的个数
dic.Count

//获取所有的key值
Dictionary<string,int>.KeyCollection keys =  dic.Keys;
foreach (var item in keys)
{
    Console.WriteLine(item);
}


//获取所有的value值
Dictionary<string, int>.ValueCollection values = dic.Values;
foreach (var item in values)
{
    Console.WriteLine(item);
}

//遍历字典
foreach (var item in dic)
{
    Console.WriteLine(item.Key+":"+item.Value);
}

其它常见属性和方法的说明:

  Comparer:           获取用于确定字典中的键是否相等的 IEqualityComparer。

  Count:                  获取包含在 Dictionary中的键/值对的数目。

  Item:                    获取或设置与指定的键相关联的值。

  Keys:                   获取包含 Dictionary中的键的集合。

  Values:                获取包含 Dictionary中的值的集合。

  Add:                    将指定的键和值添加到字典中。

  Clear:                  从 Dictionary中移除所有的键和值。

  ContainsKey:      确定 Dictionary是否包含指定的键。

  ContainsValue:   确定 Dictionary是否包含特定值。             

  GetEnumerator:  返回循环访问 Dictionary的枚举数。

  GetType:             获取当前实例的 Type。 (从 Object 继承。)

  Remove:             从 Dictionary中移除所指定的键的值。

  ToString:             返回表示当前 Object的 String。 (从 Object 继承。)

  TryGetValue:      获取与指定的键相关联的值。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aizhaiyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值