多個string數組組裝成一個List

      最近遇到一個問題,數據庫里面的數據存了一個多圖字段和一個圖片對應的排序,然后輸出的時候需要按排序處理下。

     當然,最容易想到的辦法是遍歷,然后添加,這次不想玩這么低級的代碼,而且類似的需求項目中有好幾個地方都有用到,就想着能不能寫個通用的方法,

於是想到了泛型,寫了下面這么個方法

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

此方法用於數據結構化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM