【译文】C# 集合之:C# 如何使用列表List类

C# 如何使用列表List类

原文:C# Tutorial and source code



List < T >

集合类专门为按群组划分的对象而设计的,并且能完成相应的操作任务。List 类是在System.Collections.Generic 命名空间中定义的,提供了和其他集合类类似的方法,包括add, insert, remove, search 等等。

C#的 List < T > 类代表强类型对象的列表,可以通过索引访问, 它支持存储特点类型的值,但是不进行强制转换。

List < T >

参数T是类别中元素的类型。

如何添加add项到列表List中?

添加整数值到List

List iList = new List();

iList.Add(2);

iList.Add(3);

iList.Add(5);

iList.Add(7);

添加字符串值到List

List colors = new List();

colors.Add(“Red”);

colors.Add(“Blue”);

colors.Add(“Green”);

如何统计列表中项的数量?

使用count属性获得在List中的项的数量,或者使用List的length方法。

colors.Count

如何获得List中的项?

可以通过for循环或foreach循环获得List的项。

foreach 循环

foreach (string color in colors)    {

MessageBox.Show(color);

}

for 循环

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

MessageBox.Show(colors[i]);

}

如何插入项到List中?

可以使用insert(index,item) 方法插入项到指定的索引位置。

colors.Insert(1, “violet”);

上面的代码将”violet”插入到索引1处。

如何对C# List排序

可以使用sort() 方法对List进行项目排序。

colors.Sort();

如何从List中移除元素

Remove() 可以从List中移除元素项。

colors.Remove(“violet”);

如何检查一个项是否在List当中

可以用List.Contains() 方法检查是否一个项在List当中。

if (colors.Contains(“Blue”))    {

MessageBox.Show(“Blue color exist in the list”);

}

如何拷贝一个数组到List

string[] strArr = new string[3];

strArr[0] = “Red”;

strArr[1] = “Blue”;

strArr[2] = “Green”;

//拷贝数组到List中

List arrlist = new List(strArr);

如何转换ListC#的字符串

使用下面的方法转换List到字符串。

string combindedString = string.Join(“,”, colors);

输出入如同: “Red,Blue,Green”

其中的 “,”,可以用任何其他的字符代替。

转换List到数组

使用toArray() 方法将List转换成数组。

string[] arr = colors.ToArray();

如何清空一个List

clear 方法可以移除List当中的全部元素。

arrlist.Clear ();

List ArrayList的比较

C# 中List依赖于数组,所以理论上的限制受到数组容量的限制。追加(Appending)元素有效率,因为直接使用末尾的空位置,而插入(inserting)元素效率低,因为在插入位置后面的全部元素都要从新移动位置。在查询(searching)的情况,对排序的列表进行二分查找(BinarySearch)会有效率,其他的查找算法因为要单独对每个元素进行检查,所以效率会低。

列表List和字典dictionary 的不同

列表和字典都用来存储数据集合。List (ICollection )是简单的项目集合,而Dictionary(IDictionary) 是键值对的集合。本质的差别是元素如何被索引的。

下面的程序演示上面提到的List集合的使用方法。

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            List < string > colors = new List < string > ();

            //add items in a List collection
            colors.Add("Red");
            colors.Add("Blue");
            colors.Add("Green");

            //insert an item in the list
            colors.Insert(1, "violet");

            //retrieve items using foreach loop
            foreach (string color in colors)
            {
                MessageBox.Show(color);
            }

            //remove an item from list
            colors.Remove("violet");

            //retrieve items using for loop
            for (int i = 0; i < colors.Count; i++)
            {
                MessageBox.Show(colors[i]);
            }

            if (colors.Contains("Blue"))
            {
                MessageBox.Show("Blue color exist in the list");
            }
            else
            {
                MessageBox.Show("Not exist");
            }

            //copy array to list
            string[] strArr = new string[3];
            strArr[0] = "Red";
            strArr[1] = "Blue";
            strArr[2] = "Green";
            List < string > arrlist = new List < string > (strArr);

            foreach (string str in strArr)
            {
                MessageBox.Show(str);
            }

            //call clear method
            arrlist.Clear ();

            MessageBox.Show(arrlist.Count.ToString ());
        }
    }
}

本文译自http://csharp.net-informations.com/

更准确内容,请访问作者原文。

此条目发表在程序开发分类目录,贴了, , 标签。将固定链接加入收藏夹。