List<<List<T>>如何行专列如上图,Excel按行读取,读出来的数据是按行读取,List<string> 并且添加到List<List<string>>中。类似于这个操作
 var lst0 = new List<string> { "HJ00RY001-CB04", "6903148048801", "6920177916161", "6924882335385", "6924882335514" };
            var lst1 = new List<string> { "", "HJ00RY001-CB04-HW01", "HJ00RY001-CB04-HW02", "HJ00RY001-CB04-HW03", "HJ00RY001-CB04-HW04" };
            var lst2 = new List<string> { "", "30", "30", "30", "30" };
            var lst3 = new List<string> { "", "30", "30", "30", "30" };
            var lst4 = new List<string> { "", "40", "40", "40", "40" };
            var lst5 = new List<string> { "", "48000", "48000", "48000", "48000" };
            var lst6 = new List<string> { "", "4", "4", "4", "4" };
            var lstData = new List<List<string>> {lst0, lst1, lst2, lst3, lst4, lst5, lst6};
如果把List<List<string>> lstData 这里的数据行专列期望LstData里的数据是List[0]{"HJ00RY001-CB04","","","","","",""}
List[1]{"6903148048801","HJ00RY001-CB04-HW01","30","30","40","48000","4"}……求算法

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading.Tasks;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var lst0 = new List<string> { "HJ00RY001-CB04", "6903148048801", "6920177916161", "6924882335385", "6924882335514" };
                var lst1 = new List<string> { "", "HJ00RY001-CB04-HW01", "HJ00RY001-CB04-HW02", "HJ00RY001-CB04-HW03", "HJ00RY001-CB04-HW04" };
                var lst2 = new List<string> { "", "30", "30", "30", "30" };
                var lst3 = new List<string> { "", "30", "30", "30", "30" };
                var lst4 = new List<string> { "", "40", "40", "40", "40" };
                var lst5 = new List<string> { "", "48000", "48000", "48000", "48000" };
                var lst6 = new List<string> { "", "4", "4", "4", "4" };
                var lstData = new List<List<string>> { lst0, lst1, lst2, lst3, lst4, lst5, lst6 };
                var result = R2C(lstData);
                foreach (var item in result)
                {
                    Console.WriteLine(string.Join(", ", item.Select(x => "\"" + x + "\"").ToArray()));
                }
            }        static List<List<string>> R2C(List<List<string>> source)
            {
                return Enumerable.Range(0, source[0].Count).Select(x =>
                    Enumerable.Range(0, source.Count).Select(y => source[y][x]).ToList()).ToList();
            }
        }
    }"HJ00RY001-CB04", "", "", "", "", "", ""
    "6903148048801", "HJ00RY001-CB04-HW01", "30", "30", "40", "48000", "4"
    "6920177916161", "HJ00RY001-CB04-HW02", "30", "30", "40", "48000", "4"
    "6924882335385", "HJ00RY001-CB04-HW03", "30", "30", "40", "48000", "4"
    "6924882335514", "HJ00RY001-CB04-HW04", "30", "30", "40", "48000", "4"
    Press any key to continue . . .