一、LINQ处理
筛查(Where)、分组(GroupBy)、判空(Any)、赋值(Select)等优先选择LINQ
【常规】
List<int> nums = new(){1,2,3,4,5,6}; // 手写for:遍历判断,add到新集合 var even = nums.Where(x => x % 2 == 0).ToList(); // [2,4,6]【selectMany重构实体】
var query = listA.SelectMany(a => listB.Select(b => new {a, b})); foreach(var item in query) { Console.WriteLine($"{item.a},{item.b}"); }二、匿名表达式重构实体
var query = from a in listA from b in listB select new {a, b}; foreach(var x in query) { Console.WriteLine($"{x.a},{x.b}"); }三、类的只读派生属性
public class TrainShow { /// <summary> /// 换乘消耗时间 /// </summary> public TimeSpan WaitConsumeTime { get; set; } /// <summary> /// 换乘消耗时间 /// </summary> public string WaitConsumeTimeStr => $"{WaitConsumeTime.Hours}时{WaitConsumeTime.Minutes}分"; }四、反射赋值
var list1 = sourcelist.MapTo<StudentDto>(); // MapTo是封装的反射方法,能够将字段映射过去