一、listforeach用法
listforeach是C#語言提供的一個迭代器方法,它可以方便地對List集合進行遍歷操作,並可以根據不同的需求進行相應的操作。在實際開發中,List是一種非常常見的集合類型,而listforeach方法則是我們在處理List數據時不可缺少的工具。
以下是listforeach的示例:
List list = new List{ "A", "B", "C", "D", "E" }; foreach (string item in list){ Console.WriteLine(item); } //輸出結果為 A B C D E
二、listforeach獲取i
有時候我們需要在listforeach方法中獲取當前元素的下標,可以使用以下方式:
List list = new List{ "A", "B", "C", "D", "E" }; for(int i=0;i<list.Count;i++){ Console.WriteLine("第{0}個元素的值為{1}", i, list[i]); } //輸出結果為 第0個元素的值為A 第1個元素的值為B 第2個元素的值為C 第3個元素的值為D 第4個元素的值為E
不過需要注意的是,因為List的下標從0開始,所以在輸出時要將i加1。
三、listforeachentry用法
listforeachentry是一個鍵值對迭代器方法,可以將List集合中的元素同時賦值給鍵和值。它可以很方便地獲取鍵值對,從而進行一些操作。
List list = new List{ "A", "B", "C", "D", "E" }; foreach (var item in list.Select((i, x) => new { Value = i, Index = x })){ Console.WriteLine("第{0}個元素的值為{1}", item.Index, item.Value); } //輸出結果為 第0個元素的值為A 第1個元素的值為B 第2個元素的值為C 第3個元素的值為D 第4個元素的值為E
四、listforeach中的lambda
lambda表達式在listforeach中有很重要的作用。通過lambda表達式,我們可以非常靈活地對List中的元素進行處理,並返回相應的結果。常見的lambda表達式應用包括篩選、排序等等。
以下是lambda表達式在listforeach中的示例:
List list = new List{ "AA", "C", "B", "DD", "E" }; var res = list.Where(i => i.Length == 2).OrderBy(i => i); foreach (string item in res){ Console.WriteLine(item); } //輸出結果為 AA DD
五、listforeachentry
除了listforeachentry方法之外,我們還可以使用KeyValuePair來獲取List的鍵值對。這種方法較為繁瑣,但在一些需要精細控制的場景下,仍然有其優勢。
List list = new List{"AA", "BB", "CC"}; var res = list.Select((i, x) => new KeyValuePair<int, string>(x + 1, i)); foreach (KeyValuePair<int, string> item in res){ Console.WriteLine("鍵為{0},值為{1}", item.Key, item.Value); } //輸出結果為:鍵為1,值為AA;鍵為2,值為BB;鍵為3,值為CC;
六、listforeach mono
在Unity3D等遊戲引擎中,由於使用的是Mono .NET Framework,所以它本身並不支持lambda表達式使用。但是我們可以在C#中使用foreach來替代,以達到相同的效果。
List<string> list = new List<string>{ "A", "B", "C", "D", "E" }; foreach (var item in list){ if(item.Length == 1){ Console.Write(item + " "); } } //輸出結果為 A B C D E
七、listforeach remove
在使用listforeach時,經常需要對List集合中的元素進行刪除操作。但是我們不能直接在listforeach中對List集合進行操作,否則會導致集合被修改的異常。為了避免這種情況,我們可以在listforeach中使用List的Remove方法來進行刪除。
List<string> list = new List<string>{ "A", "B", "C", "D", "E", "A" }; for(int i = list.Count - 1; i >= 0; i--){ if(list[i] == "A"){ list.RemoveAt(i); } } foreach (string item in list){ Console.WriteLine(item); } //輸出結果為 B C D E
八、listforeach遍歷對象
List不僅可以存儲基本類型數據,還可以存儲自定義對象。在listforeach中,我們可以很方便地遍歷存儲在List中的自定義對象,並進行相應的操作。
以下是遍歷自定義對象的示例:
class Student{ public int Id {get; set;} public string Name {get; set;} } List<Student> list = new List<Student>{ new Student {Id=1, Name="Tom"}, new Student {Id=2, Name="Jerry"}, new Student {Id=3, Name="Lucy"} }; foreach (var item in list){ Console.WriteLine("學生編號為{0},姓名為{1}", item.Id, item.Name); } //輸出結果為 學生編號為1,姓名為Tom 學生編號為2,姓名為Jerry 學生編號為3,姓名為Lucy
九、listforeach給外層賦值
我們可以在listforeach中對外層進行賦值。這種方式可以為我們在遍歷List集合時,方便地同時對外層變量進行操作。
List data = new List{ 1, 2, 3, 4, 5, 6 }; int total = 0; data.ForEach(x => total += x); Console.WriteLine(total); //輸出結果為:21
總結:通過以上對listforeach方法的闡述,我們可以看到它在List集合處理方面有很重要的作用。在實際開發中,我們常常需要依賴listforeach方法來進行數據的遍歷、篩選、刪除等操作。熟練掌握listforeach的使用,對我們進行開發工作具有重要的幫助作用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/181895.html