/// <summary> /// 获取map(测试可用) /// </summary> public static void MapEntity <T>(ref T entity, object model, string[] notmap = null) { if (model == null) { throw new Exception("对象为空"); } //读取 var modelproperties = ConvertHelper.NotNullList(model.GetType().GetProperties()); modelproperties = modelproperties.Where(x => x.CanRead).ToList(); //写入 var entityproperties = ConvertHelper.NotNullList(entity.GetType().GetProperties()); entityproperties = entityproperties.Where(x => x.CanWrite).ToList(); if (ValidateHelper.IsPlumpList(notmap)) { entityproperties = entityproperties.Where(x => !notmap.Contains(x.Name)).ToList(); } foreach (var pi in entityproperties) { //属性名和属性类型一样 var modelpi = modelproperties .Where(x => x.Name == pi.Name) .Where(x => x.GetType() == pi.GetType()) .FirstOrDefault(); if (modelpi == null) { continue; } pi.SetValue(entity, modelpi.GetValue(model), null); } }
/// <summary> /// 包含长度大于0的item,并把他们找出来 /// </summary> public static bool IsPlumpListAfterFilterMeaninglessData(IEnumerable <string> list, out List <string> filtered) { filtered = ConvertHelper.NotNullList(list).Where(x => IsPlumpString(x)).ToList(); return(filtered.Count > 0); }
/// <summary> /// 第一个非空字符串 /// </summary> /// <param name="strs"></param> /// <returns></returns> public static string FirstPlumpStrOrNot(params string[] strs) => ConvertHelper.NotNullList(strs).Where(x => ValidateHelper.IsPlumpString(x)).FirstOrDefault();
public static List <T> NotNullEnumerable <T>(IEnumerable <T> list) => ConvertHelper.NotNullList(list);