最近在接收前辈的代码,越来越会发现有很多.net已经封装好的方法可以使用,我们却不知道,然后自己去For/Foreach循环解决自己的需求问题
总的来说:当下很忧伤啊。总结了几个经常需要用却不知道的方法,如下:
1.Range-AddRange/InsertRange
需求:对ListA进行添加ListB的内容
///经常见到的 循环添加 foreach (Point item in ListB) { this.ListA.Add(item); } ///AddRange方法 this.this.ListA.AddRange(ListB); ///InsertRange方法 this.this.ListA.InsertRange(2, ListB);
2.获取Item的属性最大值
需求:获得List列表中属性最大值的元素
///经常看到的 id = 1; foreach (Point p in this.Points) { if (p.Id > id) { id = p.Id; } } var maxValue = Points.FirstOrDefault(p => p.Id == id); ///Max方法 var maxValue = Points.Max(x => x.Id);
3.Converter方法
需求:List<ClassA>转换为List<ClassB>
///常见的 var ListA = new List<Point>(); var ListB = new List<Rect>(); foreach (var item in ListA) { var itemb = new Rect(); itemb.X = item.X; itemb.Y = item.Y; ListB.Add(itemb); } ///Converter方法 Converter<Point, Rect> converter = delegate (Point point) { return new Rect { X = point.X, Y = point.Y }; }; ListB = ListA.ConvertAll<Rect>(converter);
4.找时间翻翻List源码拿出来看看,先挖个坑