C# List常用函数用法

本章讲述:List常用函数d的用法

    List类是ArrayList类的泛型等效类,该类使用大小可按需动态增加的数组实现IList泛型接口。
泛型的好处:它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
    性能注意事项:在决定使用IList还是使用ArrayList类(两者具有类似的功能)时,记住IList类在大多数情况下执行得更好并且是类型安全的。如果对IList类的类型T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型T 使用值类型,则需要考虑实现和装箱问题。

List 常用的用法:

1、声明

//示例1:
List mList = new List();        //T为列表中元素类型,现在以string类型作为例子:
List mList = new List();
//示例2:
List testList =new List (IEnumerable collection);  //以一个集合作为参数创建List:
string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu"};
List testList = new List(temArr);

2、添加元素

1、List. Add(T item)添加一个元素
    例: mList.Add("John");

2、List. AddRange(IEnumerable collection) //添加一组元素
    例:string[] temArr = {"Ha","Hunter","Tom","Lily","Jay","Jim","Kuku","Locu"};
    mList.AddRange(temArr);

3、Insert(intindex, T item);        //在index位置添加一个元素
    例:mList.Insert(1,"Hei");

3、遍历List中元素

foreach(Telement in mList)    // T的类型与mList声明时一样
{
    Console.WriteLine(element);
}

4、删除元素

    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);

5、判断某个元素是否在该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.");
}

6、给List里面元素排序:List.Sort()        //默认是元素第一个字母按升序;例:mList.Sort();

7、给List里面元素顺序反转:List.Reverse ()可以不List.Sort()配合使用,达到想要的效果;例: mList.Sort();

8、List清空  : List.Clear()

9、获得List中元素数目:List.Count()        //返回int值

10、List 查找:自定义类型,查找该列表中的类数据是否含有索引相同的, 使用Exists()函数。查找列表中是否存在某个值;

int strartNum;
List coverWnds;
if (coverWnds.Exists(p=>p.Index == strartNum))
{
}

11、List 中 Find()查找数据

class stu
{
    int id;
    string name;
    string sex;
    int age;
}

list add=new list(new Person[] { new Person(1, "aladdin" ,"men",20) , new Person(1, "zhao","men",6)});
add.Find(delegate(stup) { return p.Name == "abc" && p.age==15; });//使用委托

Lambda表达式: var result = from s in add where  s.Name .Equals("abc") && s.Age == 15 select s;  // 返回Student对象的集合

12、FindLastIndex、FindIndex、FindAll、Find

//FindIndex()方法是用来搜索带有一定特性的元素
// 例用委托做参数  public delegate bool Predicate(T obj);

int index3 = add.FindIndex(param => param.name.Equals("jacky"));

// FindLastIndex是从后面查第一个出现的元素,因为我们这里没有重复元素,所以体现不出他只查找一个,就停下来的效果

int index4 = add.FindLastIndex(p => p.name.Equals("aladdin"));

// Find方法与FindIndex方法用法一样,不同的是,它返回的是元素本身

Person ppp = add.Find( p => p.name.Equals("jacky")) ;

// 如果要查找所有的匹配元素,而不是找到第一个就停下来,就使用FindAll方法
// 我们查找所有年纪等于100的对象,3个都符合

List newList = add.FindAll(p => p.age == 100);

13、两个列表合并,去除重复的

List listA = new List {1,2,3,5,7,9};
List listB = new List {13,4,17,29,2};

listA.AddRange(listB );//把集合A.B合并
List Result = listA.Union(listB).ToList();          //剔除重复项
List Result = listA.Concat(listB).ToList();        //保留重复项

listA.BinarySearch("1");//判断集合中是否包含某个值.如果包含则返回0

 

你可能感兴趣的:(C#,C#,List常用函数用法)