C# List常用函式用法
本章講述:List常用函式d的用法
List<T>類是ArrayList類的泛型等效類,該類使用大小可按需動態增加的陣列實現IList<T>泛型介面。
泛型的好處:它為使用c#語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行向下強制型別轉換,所以效能得到提高。
效能注意事項:在決定使用IList<T>還是使用ArrayList類(兩者具有類似的功能)時,記住IList<T>類在大多數情況下執行得更好並且是型別安全的。如果對IList<T>類的型別T 使用引用型別,則兩個類的行為是完全相同的。但是,如果對型別T 使用值型別,則需要考慮實現和裝箱問題。
List 常用的用法:
1、宣告
//示例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);
2、新增元素
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");
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<BaseWnd> coverWnds;
if (coverWnds.Exists(p=>p.Index == strartNum))
{
}
11、List 中 Find()查詢資料
class stu
{
int id;
string name;
string sex;
int age;
}
list<stu> add=new list<stu>(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>(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<Person> newList = add.FindAll(p => p.age == 100);
13、兩個列表合併,去除重複的
List<int> listA = new List<int> {1,2,3,5,7,9};
List<int> listB = new List<int> {13,4,17,29,2};
listA.AddRange(listB );//把集合A.B合併
List<int> Result = listA.Union(listB).ToList<int>(); //剔除重複項
List<int> Result = listA.Concat(listB).ToList<int>(); //保留重複項
listA.BinarySearch("1");//判斷集合中是否包含某個值.如果包含則返回0
相關文章
- PHP 自定義函式用法及常用函式集合PHP函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- abs函式用法函式
- Mysql 常用函式(1)- 常用函式彙總MySql函式
- 常用函式函式
- Python range() 函式用法Python函式
- SSD-函式用法函式
- GetModuleFileName函式的用法函式
- Instr函式的用法函式
- SQL LEN()函式用法SQL函式
- Python排序函式用法Python排序函式
- c# 中常用的對集合的用法C#
- Mysql 常用函式(20)- ceiling 函式MySql函式
- Mysql 常用函式(15)- upper 函式MySql函式
- MySQL 常用函式MySql函式
- kotlin常用函式Kotlin函式
- js 常用函式JS函式
- Oracle常用函式Oracle函式
- 常用函式整理函式
- TensorFlow常用函式函式
- PHP 常用函式PHP函式
- QT常用函式QT函式
- 常用助手函式函式
- loadrunner常用函式函式
- PHP常用函式PHP函式
- MySQL 常用函式。MySql函式
- 常用函式集合函式
- 【Oracle的NVL函式用法】Oracle函式
- string 函式的基本用法函式
- C++ replace() 函式用法C++函式
- fcntl函式用法詳解函式
- Hive常用函式及自定義函式Hive函式
- 核函式 多項式核函式 高斯核函式(常用)函式
- 15個常用excel函式公式 excel函式辦公常用公式Excel函式公式
- StretchBlt函式和BitBlt函式的區別和用法函式
- C語言中函式printf()和函式scanf()的用法C語言函式
- javascript常用函式大全JavaScript函式
- PHP常用函式篇PHP函式