C#中List常用方法:判斷存在、查詢、排序
阿新 • • 發佈:2021-10-20
專案常用List來進行資料操作管理,有一些方法經常百度,所以這裡記錄下。
1. List判斷元素是否存在,返回bool
personList.Exists(t => t.name == "John")
2. List查詢,返回物件
Person temp = personList.Find(t => t.name == "Jack" && t.age > 30 && t.sex == true);
3. List排序
class Person : IComparable<Person> { public string name; public int age; public bool sex; //定義比較方法,按照 age 比較 public int CompareTo(Person other) { if (this.age < other.age) { return -1; } return 1; } } personList.Sort();
4. 物件屬性列印
class Person : IComparable<Person> { public string name; public int age; public bool sex; //列印物件例項 public override string ToString() { return "name: " + name + ";age: " + age + ";sex: " + sex; } } person.ToString();
完整測試程式碼
namespace CSharpApp { class Person : IComparable<Person> { public string name; public int age; public bool sex; public Person(string Name, int Age, bool Sex) { this.name = Name; this.age = Age; this.sex = Sex; } //定義比較方法,按照 age 比較 public int CompareTo(Person other) { if (this.age < other.age) { return -1; } return 1; } //列印物件例項的時候使用 public override string ToString() { return "name: " + name + ";age: " + age + ";sex: " + sex; } } class ListTest { static void Main(string[] args) { List<Person> personList; personList = new List<Person>(); //給List賦值 Person p1 = new Person("Mike", 30, true); Person p2 = new Person("John", 20, false); Person p3 = new Person("Jack", 50, true); personList.Add(p1); personList.Add(p2); personList.Add(p3); //List排序 personList.Sort(); if (personList.Exists(t => t.name == "John")) { //如果List中存在 name == John的元素 } //查詢 name 等於 Jack、年齡大於30、性別男的元素 Person temp = personList.Find(t => t.name == "Jack" && t.age > 30 && t.sex == true); //列印找到的物件例項 //temp.ToString(); Console.WriteLine(temp.ToString()); //換行輸出內容 } } }
5. List 其他方法
Count - List元素數量
Add(T item) - 向List新增物件
AddRange() - 尾部新增實現了 ICollection 介面的多個元素
BinarySearch() - 排序後的List內使用二分查詢
Clear() - 移除所有元素
Contains(T item) - 測試元素是否在List內
CopyTo(T[] array) - 把List拷貝到一維陣列內
Exists() - 判斷存在
Find() - 查詢並返回List內的出現的第一個匹配元素
FindAll() - 查詢並返回List內的所有匹配元素
GetEnumerator() - 返回一個用於迭代List的列舉器
GetRange() - 拷貝指定範圍的元素到新的List內
IndexOf() - 查詢並返回每一個匹配元素的索引
Insert() - 在List內插入一個元素
InsertRange() - 在List內插入一組元素
LastIndexOf() - 查詢並返回最後一個匹配元素的索引
Remove() - 移除與指定元素匹配的第一個元素
RemoveAt() - 移除指定索引的元素
RemoveRange() - 移除指定範圍的元素
Reverse() - 反轉List內元素的順序
Sort() - 對List內的元素進行排序
ToArray() - 把List內的元素拷貝到一個新的陣列內
trimToSize() - 將容量設定為List中元素的實際數目