一、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/n/181895.html