最近遇到一个问题,数据库里面的数据存了一个多图字段和一个图片对应的排序,然后输出的时候需要按排序处理下。

当然,最容易想到的办法是遍历,然后添加,这次不想玩这么低级的代码,而且类似的需求项目中有好几个地方都有用到,就想着能不能写个通用的方法,

于是想到了泛型,写了下面这么个方法

    /// <summary>
/// 将N个数组映射成对象返回用于数据结构化
/// 要求各数组的长度一样,默认第一个数组的数据会成为对象的第一个属性的值,以此类推
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="arrs">字符串二维数组</param>
/// <returns></returns>
public static List<T> AssemblingArraysToObject<T>(params string[][] arrs) where T : new()
{
try
{
List<T> objList = new List<T>();
T obj = new T();
PropertyInfo[] properts = obj.GetType().GetProperties();

int arrCount = arrs.Length;
              int itemCount = arrs[0].Length;
              for (int i = 0; i < itemCount; i++)
              {
                  for (int j = 0; j < arrCount; j++)
                  {
                      properts[j].SetValue(obj, arrs[j][i], null);
                  }
                  objList.Add(obj);
                  obj = new T();
              }

            return objList;
}
catch (Exception)
{
throw new Exception("数据异常");
}
}

使用方法很简单,如下,以后遇到类似的东西,就可以直接用了,入参也是不定数量的,通用性比较广

List<Photos> carousels = StringTools.AssemblingArraysToObject<Photos>(photos, orders);// 将两个数组映射成list

此方法用于数据结构化

最新文章

  1. python的反转(切片)
  2. ZeroMQ接口函数之 :zmq_ctx_destroy - 销毁一个ZMQ环境上下文
  3. Java 判断文件夹、文件是否存在、否则创建文件夹
  4. 关于IP地址的一个细节问题
  5. Symbols of String Pattern Matching
  6. 暑假集训(5)第一弹——— Super Jumping! Jumping! Jumping!(hdu1087)
  7. iOS9横竖屏设置的处理方法
  8. 8051单片机I/O引脚工作原理
  9. leetcode-Rising Temperature
  10. QTableWidget简单操作
  11. Android Studio 项目结构
  12. Iterator对对象遍历
  13. HttpRuntime.Cache .Net自带的缓存类
  14. AGC002 F - Leftmost Ball
  15. Python脱产8期 Day07 2019/4/19
  16. 决策树分类算法及python代码实现案例
  17. [CodeForces - 614C] C - Peter and Snow Blower
  18. HDU 1166 敌兵布阵(线段树点更新区间求和裸题)
  19. Delphi:程序自己删除自己,适用于任何windows版本(含源码)
  20. Java - &quot;JUC&quot;之Condition源码解析

热门文章

  1. Sqlserver2014 Master....提示异常,IIS未安装
  2. SpringBoot Controller接收参数的几种常用方
  3. BZOJ1503 [NOI2004]郁闷的出纳员 splay
  4. 删除ELK中的数据。。
  5. 033 Url中特殊字符的处理
  6. 非root用户下实现SSH免密码登录
  7. radio按钮单选效果
  8. Java实现检验一串数字的出栈合法性
  9. Kmeans:利用Kmeans实现对多个点进行自动分类—Jason niu
  10. 【python】廖雪峰python教程学习--基础