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

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

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

    /// <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

此方法用于数据结构化

多个string数组组装成一个List<Object>的更多相关文章

  1. 批量删除以及将String数组转换成Integer数组的奇淫技巧

    首先在pom.xml文件添加依赖: <!-- bean工具 --> <dependency> <groupId>commons-beanutils</grou ...

  2. c#查找string数组的某一个值的索引

    string[] array = { "A","B","C","D","H"};   var ind ...

  3. 对N个数组进行操作。先把这N个一维数组合并成一个2为数组;然后进行操作

    using System;using System.Collections.Generic;using System.Linq;using System.Collections;using Syste ...

  4. C# byte数组转换成List<String>

    byte[] bys=buffer; string[] AllDataList=  Encoding.Default.GetString(bys).Split(Environment.NewLine. ...

  5. typedef std::string AddressLines[4]定义了一个string数组,大小为4

    int main() { typedef std::]; std::]; std::string *pal1 = new AddressLines; delete [] pal; delete [] ...

  6. 【C语言】在两个数成对出现的数组中找到一个单独的数。

    //在两个数成对出现的数组中找到一个单独的数.比如{1,2,3.3,1,4.2},即找出4 #include <stdio.h> int find(int arr[], int len) ...

  7. 集合或数组转成String字符串

    1.将集合转成String字符串 String s=""; for (int i = 0; i < numList.size(); i++) { if (s=="& ...

  8. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝

    第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...

  9. impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)

    impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)例如Query: select cast(round(2 / 3, 4)*100 as string)+-- ...

随机推荐

  1. 【回顾】html简介、基础、元素

    1.简介 什么是HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标记语言 标 ...

  2. sublime3 破解

    —– BEGIN LICENSE —–TwitterInc200 User LicenseEA7E-8900071D77F72E 390CDD93 4DCBA022 FAF6079061AA12C0 ...

  3. 分享几个在线生成网址二维码的API接口

    现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面麦布分享几个在线生成网址二维码的API接口.都是采用http协议接口,无需下 ...

  4. Flink--将表转换为DataStream或DataSet

    A Table可以转换成a DataStream或DataSet.通过这种方式,可以在Table API或SQL查询的结果上运行自定义的DataStream或DataSet程序 将表转换为DataSt ...

  5. docker下搭建zipkin for mysql

    docker pull openzipkin/zipkin 新建docker-compose.yml加入以下内容,自行修改. version: ' services: # The zipkin pro ...

  6. 有了这些,java IO就不愁了

    IO的总结: java中相对路径和绝对路径的问题: 在web项目中,如果生成的文件前面没有 / 开头的话,表示的是生成的文件在当前项目的根目录下如student.txt在项目中刷新就能看到. 如果是以 ...

  7. Painting the Fence Gym - 101911E(构造)

    There is a beautiful fence near Monocarp's house. The fence consists of nn planks numbered from left ...

  8. Manjaro (KDE)安装踩坑记录

    1.如果双显卡无法安装系统可以进如BIOS屏蔽显卡后进入安装 2.如果安装kde版本后容易冻屏.死机,可以尝试安装闭源驱动 3.如果出现resolving time out 10000ms 这样的问题 ...

  9. XamarinAndroid组件教程RecylerView动画组件使用动画(2)

    XamarinAndroid组件教程RecylerView动画组件使用动画(2) 如果开发者要为RecylerView的子元素添加动画效果,需要使用RecyclerView类中的SetItemAnim ...

  10. [iOS]有关开发过程中,代码之外的一些东西。

    1.访问相册的权限 Privacy - Photo Library Usage Description //访问相册Privacy - Photo Library Additions Usage De ...