C# 集合(一) —— Array类

发布于:2024-06-02 ⋅ 阅读:(181) ⋅ 点赞:(0)

总目录
C# 语法总目录

集合

1. Array 类

//创建方式
//方式一
Array arr = Array.CreateInstance(typeof(string), 3);
arr.SetValue("lisi", 0);
arr.SetValue("zhangsan", 1);
arr.SetValue("lili", 2);

foreach (var item in arr)
{
    Console.WriteLine(item);
}

//还可以转换
string[] strArr = (string[])arr;
foreach (var item in strArr)
{
    Console.WriteLine(item);
}

//还可以这样遍历
Array.ForEach(strArr, Console.WriteLine);

//输出
lisi
zhangsan
lili

1.1 搜索

  • IndexOf / LastIndexOf 从头往后找 / 从后往前找
  • Find / FindLast / FindIndex / FindAll / Exists / TrueForAll
  • BinarySearch 二叉查找
string[] names = { "lisi", "xiaoli", "andy", "lucy" };

//IndexOf
int los = Array.IndexOf(names, "andy");
int Llos = Array.LastIndexOf(names, "andy");
Console.WriteLine(los);
Console.WriteLine(Llos);

//Find
string? temps = Array.Find(names, n => n.Contains('a'));
Console.WriteLine(temps);
//xiaoli

string? templ = Array.FindLast(names, n => n.Contains('a'));
Console.WriteLine(templ);
//andy

//FindAll
string[] tempstr = Array.FindAll(names, n => n.Contains('a'));
Array.ForEach(tempstr, Console.WriteLine);
//xiaoli
//andy

//Exists
bool isExists = Array.Exists(names, n => n.Contains('a'));
Console.WriteLine(isExists);
//True

//TrueForAll  是不是所有的都满足条件
bool isTrueAll = Array.TrueForAll(names, n => n.Contains('a'));
Console.WriteLine(isTrueAll);
//False

string[] nas = { "andy", "sandy" };
bool isNasAll = Array.TrueForAll(nas, n => n.Contains('a'));
Console.WriteLine(isNasAll);
//True

//BinarySearch
int biLos = Array.BinarySearch(names, "xiaoli");
Console.WriteLine(biLos);
//1

1.2 排序

int[] numbers = { 1, 3, 2};
string[] words = { "yi", "san", "er" };

Array.Sort(numbers);
Array.ForEach(numbers, Console.Write);
//123

//第一个数组的排序,同时应用到第二个数组
Array.Sort(numbers, words);
Array.ForEach(numbers, Console.Write);
Array.ForEach(words, Console.Write);
//123yiersan

1.3 翻转

int[] numbers = { 1, 3, 2};
string[] words = { "yi", "san", "er" };

Array.Reverse(numbers);
Array.ForEach(numbers, Console.Write);
//231

1.4 转换

float[] fls = { 1.5f, 2.3f, 2.5f };
int[] ints = Array.ConvertAll(fls, r => Convert.ToInt32(r));
Array.ForEach(ints, Console.Write);
//222

总目录
C# 语法总目录


网站公告

今日签到

点亮在社区的每一天
去签到