C# 根据索引将三个数组合并为单个数组

C# 根据索引将三个数组合并为单个数组,c#,C#,我有三个数组,每个数组都有不同的数据。我希望将它们作为单个数组连接起来,其中每个数组中索引为0的元素必须位于新创建数组中的相同索引处 例如: arr1[0]="Trailor"; arr1[1]="Total Recall"; arr2[0]="Life of Pi"; arr2[1]="BDRIP"; arr3[0]="350MB"; arr3[1]="4.37GB" 我只想要任何维度的新数组,但是上面数组中的元素应该可以通过循环访问 我想打印下表中的元素: <ta

我有三个数组,每个数组都有不同的数据。我希望将它们作为单个数组连接起来,其中每个数组中索引为0的元素必须位于新创建数组中的相同索引处

例如:

 arr1[0]="Trailor";
 arr1[1]="Total Recall";

 arr2[0]="Life of Pi";
 arr2[1]="BDRIP";


 arr3[0]="350MB";
 arr3[1]="4.37GB"
我只想要任何维度的新数组,但是上面数组中的元素应该可以通过循环访问

我想打印下表中的元素:

 <table>
      <thead>
            <tr>
                 <td>Film Title</td>
                 <td>Type</td>
                 <td>Size</td>    
           </tr>
      <thead>
             <tr>
                 <td>Trailor</td>
                 <td>Life of Pi</td>
                 <td>350MB</td>    
           </tr>
           <tr>
                 <td>Total Recall</td>
                 <td>BDRIP</td>
                 <td>4.37GB</td>    
           </tr>


 <table>

片名
类型
大小
叛徒
圆周率的寿命
350MB
全部召回
BDRIP
4.37GB

如果您只想将所有阵列连接在一起,可以使用
Concat

arr1.Concat(arr2).Concat(arr3);
如果需要新的二维数组,只需创建并填充它:

var setOfArrays = new string[][] { arr1, arr2, arr3 };

编辑使用相同的方括号语法访问它们

for (int i=0 ; i<setOfArrays.Length ; i++)
{
    for (int j=0 ; j<setOfArrays[i].Length ; j++)
    {
        Console.WriteLine(setOfArrays[i][j]);
    }
}

for(int i=0;i如果您创建一个用于存储数据的类(或结构),将更容易理解。如果您稍后阅读:

class Record
{
    public String Title {get; set;}
    public String Type {get; set;}
    public String Size {get; set;}

    public Record(String title, String type, String size)
    {
        Title = title;
        Type = type;
        Size = size;
    }
}
然后用您的数据填写这些对象的列表:

List<Record> records = new List<Record>();

for(int i=0; i<elementcount; i++)
    records[i] = new Record(arr1[i], arr2[i], arr3[i]);
List记录=新列表();

为了(inti=0;i为了简单起见,我没有使用您的HTML示例,但这段代码向您展示了一种可行的技术:

void Main()
{
    var one = new string[] { "one", "two" };
    var two = new string[] { "apple", "pear" };
    var three = new string[] { "cat", "dog" };

    GroupFormatDemo(one, two, three);

}
void GroupFormatDemo(params string[][] args) 
{
    foreach (var a in args) 
    {
        Console.WriteLine("First={0}, Second={1}", a[0], a[1]);
    }
}

定义一个类类型以保存三个数组中每个数组的一个数据元素:

public class Data
{
    public string Item1 { get; set; }
    public string Item2 { get; set; }
    public string Item3 { get; set; }
}
然后构造这些对象的数组,用原始数组中的值填充字段:

var list = new List<Data>();
for (int i = 0; i < arr1.Length; i++)
{
    list.Add(new Data() { Item1 = arr1[i], Item2 = arr2[i], Item3 = arr3[i] };
}

var dataArray = list.ToArray();

下面是我对LINQ解决方案的看法。这将生成一个数组,同一索引上的元素连接在一起

List<string[]> movies = new List<string[]>() {arr1, arr2, arr3};


var mergedArray = movies.Aggregate((sArrOne, sArrtwo) => 
                               sArrOne.Zip(sArrtwo, (one, two) => one += " "+two)
                        .ToArray());
List movies=newlist(){arr1,arr2,arr3};
var mergedArray=movies.Aggregate((sArrOne,sArrtwo)=>
sArrOne.Zip(sArrtwo,(一,二)=>1+=“”+2)
.ToArray());

mergedArray[0]
-->PI350MB的Trailor寿命

我不明白您想要什么…在您想要的状态中留下空括号是在指定您的目标。您希望在
newArr[0]中有什么
?您有三个候选对象。为什么不定义一个对象
电影
,属性
标题
类型
大小
,并使用这些对象的数组?System.Collections.Generic.List是一种类型,但用作变量。@BhushanFirake抱歉,我的回答中有一个输入错误--请查看我的编辑,现在应该可以工作了。el可以从这个数组访问元素,然后@BhushanFirake您可以将括号语法加倍--
setOfArrays[0][0]
,等等。如问题中所述,任何将其打印在一个表中的建议我都同意对象(我几乎从不使用结构,因为它们在C中的值语义会让您大吃一惊)定制的目的往往是更好的表现。
List<string[]> movies = new List<string[]>() {arr1, arr2, arr3};


var mergedArray = movies.Aggregate((sArrOne, sArrtwo) => 
                               sArrOne.Zip(sArrtwo, (one, two) => one += " "+two)
                        .ToArray());