服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# 列表List的常用属性和方法介绍

C# 列表List的常用属性和方法介绍

2022-11-12 14:49戒生 C#

这篇文章主要介绍了C# 列表List的常用属性和方法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1.创建列表

(列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型)

//创建列表
      //方法一
      List<int> intList = new List<int>();//创建了一个空的列表 通过类型后面的<>来表示这个列表存储的数据的类型
      //方法二
      var intlist1 = new List<string>();
      //方法三
      var intlist2 = new List<int>(){1,2,3};//创建了一个列表,里面的初始值有三个分别为 1 2 3

 

2.遍历列表

for循环,遍历所有的索引,通过索引访问列表中的元素

for(int i=0;i<list.Count;i++){
//循环体list[i]
}

foreach遍历

foreach(var temp in list){ //依次取得list中的每一个元素赋值给temp,并执行循环体
 //循环体 temp
}

 

3.列表的常用属性方法

1,Capacity获取容量大小

2,Add()方法添加元素

  var scoreList = new List<int>();
  scoreList.Add(12);
  scoreList.Add(34);
  scoreList.Add(56);
  foreach (var temp in scoreList)
  {
      Console.Write(temp + " ");
  }
  Console.ReadKey();

C# 列表List的常用属性和方法介绍

3,Insert()方法插入元素

var scoreList = new List<int>(){100,200,300,100};
  //遍历列表
  foreach (var temp in scoreList)
  {
      Console.Write(temp + " ");
  }
  
    Console.WriteLine();
      scoreList.Insert(3, -100);//向指定索引位置插入元素,原来的元素向后移动一位。插入索引不能超出索引范围,插入索引最大可为scoreList.Count
      foreach (var temp in scoreList)
      {
          Console.Write(temp + " ");
      }
      Console.WriteLine();
      Console.ReadKey();

C# 列表List的常用属性和方法介绍

4,[index]访问元素

5,Count属性访问元素个数

6,RemoveAt()方法移除指定位置的元素

scoreList.RemoveAt(1);//removeAt(index)填入要删除的索引

7,IndexOf()方法取得一个元素所在列表中的索引位置

LastIndexOf()上面的方法是从前往后搜索,这个是从后往前搜索,搜索到满足条件的就停止,上面的两个方法,如果没有找到指定元素就返回-1

  var scoreList = new List<int>(){100,200,300,100};
  //遍历列表
  foreach (var temp in scoreList)
  {
      Console.Write(temp + " ");
  }
  Console.WriteLine();
  Console.WriteLine(scoreList.IndexOf(400));查找不到返回-1
  Console.WriteLine(scoreList.IndexOf(100));
  Console.WriteLine(scoreList.LastIndexOf(100));
  Console.ReadKey();

C# 列表List的常用属性和方法介绍

8,Sort()对列表中是元素进行从小到大排序

  var scoreList = new List<int>(){100,200,300,100};
  //遍历列表
  foreach (var temp in scoreList)
  {
      Console.Write(temp + " ");
  }
  Console.WriteLine();
  scoreList.Sort();//排序
  foreach (var temp in scoreList)
  {
      Console.Write(temp + " ");
  }
  Console.WriteLine();
  Console.ReadKey();

C# 列表List的常用属性和方法介绍

 

关于列表的更多内容

1,列表内部数据是使用数组进行的存储,一个空的列表内部会有一个长度为0的数组,当给列表中添加元素的时候,列表的容量会扩大为4,如果添加第5个的时候,列表的大小会重新设置为8,如果添加第9个元素,列表容量会扩大为16,依次增加。当列表的中的容量发生改变的时候,它会创建一个新的数组,使用Array.Copy()方法将旧数组中的元素复制到新数组中。为了节省时间,如果事先知道要存储的数据的个数,就可以利用列表的构造函数指定列表的容量大小,比如下面的

List intlist = new List(10);创建了一个初始容量为10的列表,当容量不够用的时候,每次都会按照原来容量的2倍进行扩容。

我们可以通过Capacity属性获取和设置容量

intList.Capacity = 100;

2,注意容量和列表中元素个数的区别,容量是列表中用于存储数据的数组的长度通过Capacity 获取,列表中的元素是我们添加进去需要管理的数据,通过Count获取

例如

      List<int> intList = new List<int>();//创建列表
      for (int i = 0; i < 20; i++)
      {
          Console.WriteLine("列表长度:" + intList.Capacity + " 元素个数:" + intList.Count);
          intList.Add(10);
      }
      Console.ReadKey();

C# 列表List的常用属性和方法介绍

补充:C#中List怎么用?List基础用法汇总

C#中的List怎么样?List<T>类是ArrayList类的泛型等效类,该类使用大小可按需动态增加的数组实现IList<T>泛型接口。

泛型的好处:它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

性能注意事项:在决定使用IList<T>还是使用ArrayList类(两者具有类似的功能)时,记住IList<T>类在大多数情况下执行得更好并且是类型安全的。如果对IList<T>类的类型T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型T 使用值类型,则需要考虑实现和装箱问题。

C# List的基础常用方法:

 

一、声明:

1、List<T> mList = new List<T>();

T为列表中元素类型,现在以string类型作为例子:

List<string> mList = new List<string>();

2、List<T> testList =new List<T> (IEnumerable<T> collection);

以一个集合作为参数创建List:

string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu"};
List<string> testList = new List<string>(temArr);

 

二、添加元素:

1、List. Add(T item)添加一个元素

例:

mList.Add("John");

2、List. AddRange(IEnumerable<T> collection)添加一组元素

例:

string[] temArr = {"Ha","Hunter","Tom","Lily","Jay","Jim","Kuku","Locu"};mList.AddRange(temArr);

3、Insert(intindex, T item);在index位置添加一个元素

例:

mList.Insert(1,"Hei");

 

三、遍历List中元素:

foreach(TelementinmList)T的类型与mList声明时一样

{
Console.WriteLine(element);
}

例:

foreach(stringsinmList)
{
Console.WriteLine(s);
}

 

四、删除元素:

1、List. Remove(T item)删除一个值

例:

mList.Remove("Hunter");

2、List. RemoveAt(intindex);删除下标为index的元素

例:

mList.RemoveAt(0);

3、List. RemoveRange(intindex,intcount);

从下标index开始,删除count个元素

例:

mList.RemoveRange(3, 2);

 

五、判断某个元素是否在该List中:

List. Contains(T item)返回true或false,很实用

例:

if(mList.Contains("Hunter"))
{
Console.WriteLine("There is Hunter in the list");
}
else
{
mList.Add("Hunter");
Console.WriteLine("Add Hunter successfully.");
}

 

六、给List里面元素排序:

List. Sort ()默认是元素第一个字母按升序

例:

mList.Sort();

 

七、给List里面元素顺序反转:

List. Reverse ()可以不List. Sort ()配合使用,达到想要的效果

例:

mList.Sort();

 

八、List清空:

List. Clear ()

例:

mList.Clear();

 

九、获得List中元素数目:

List. Count ()返回int值

例:

in tcount = mList.Count();
Console.WriteLine("The num of elements in the list: "+count);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/qq_40985921/article/details/84402418

延伸 · 阅读

精彩推荐
  • C#C#中的let字句应用示例

    C#中的let字句应用示例

    这篇文章主要给大家介绍了C#中的let字句,文中通过应用实例介绍的很详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。...

    CH|heyi3732021-12-24
  • C#在winform下实现左右布局多窗口界面的方法之续篇

    在winform下实现左右布局多窗口界面的方法之续篇

    这篇文章主要介绍了在winform下实现左右布局多窗口界面的方法之续篇 的相关资料,需要的朋友可以参考下...

    梦在旅途6582021-11-14
  • C#C#使用ImitateLogin模拟登录百度

    C#使用ImitateLogin模拟登录百度

    这篇文章主要介绍了C#使用ImitateLogin模拟登录百度 的相关资料,需要的朋友可以参考下...

    Carey Tzou8242021-11-05
  • C#C#正方形图片的绘制方法

    C#正方形图片的绘制方法

    这篇文章主要为大家详细介绍了C#正方形图片的绘制方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    薛定谔家的猫12212022-03-02
  • C#C# Oracle批量插入数据进度条的实现代码

    C# Oracle批量插入数据进度条的实现代码

    这篇文章主要介绍了C# Oracle批量插入数据进度条的实现代码,需要的朋友可以参考下...

    heyyw9122022-02-22
  • C#C# 表达式树Expression Trees的知识梳理

    C# 表达式树Expression Trees的知识梳理

    本篇文章主要介绍了表达式树 Expression Trees的基础知识:Lambda 表达式创建表达式树;API 创建表达式树;编译表达式树;执行表达式树;修改表达式树等等,...

    反骨仔(二五仔)9472021-12-16
  • C#如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

    如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

    这篇文章主要介绍了如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考...

    森大科技6272022-08-15
  • C#C#汉字转拼音实例(支持多音字)

    C#汉字转拼音实例(支持多音字)

    几年前就在网上看到过汉字转拼音的程序,大都就是按汉字的编码转换,单字对应的算法实现的。但是都有一个共同的缺点,不能支持多音字。本篇文章主...

    最爱晴天5922021-12-15