组织数组c#

时间:2015-08-21 19:54:34

标签: c# arrays organized

所以我在一个数组中有一组变量,我想从每个(比如说)第四个索引中收集数据。例如,如果我有数组all [],其数据位于[0]->id [1]->field1 [2]->field2[3]->linebreak之后,另一组[4]->id [5]->field1[6]->field2 [7]->linebreak之后,依此类推。现在我想创建一个名为id []的数组(或列表),其中包含所有id和一个field1[],其中包含所有字段ID。我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

您可以对每个数组元素的索引应用模4,以确定其在四个组中的位置。 Ids将位于0位置;字段位于第1和第2位。

int[] ids = all.Where((_, i) => i % 4 == 0).ToArray();
int[] fields = all.Where((_, i) => i % 4 == 1 || i % 4 == 2).ToArray();

答案 1 :(得分:1)

您可能会发现将数据存储在对象中更容易......

public class DataObject {

    public DataObject() {}
    public DataObject(string[] fields) {   
        // this is an example.  construct a .ctor that is sane for your data.
        // TODO:  Add array bounds checking and data sanity checks
        this.ID = fields[0];
        this.Field1 = fields[1];
        this.Field2 = fields[2];
    }

    public string ID {get; set;}

    public string Field1 {get; set;}

    public string Field2 {get; set;}
}

然后你将存储DataObject的数组或类似数组的结构。