组织数组c#

组织数组c#,c#,arrays,.net,organized,C#,Arrays,.net,Organized,所以我在一个数组中有一组变量,我想从每个(比方说)第四个索引中收集数据。例如,如果我有数组all[],它的数据位于[0]->id[1]->field1[2]->field2和[3]->linebreak之后以及另一组[4]->id[5]->field1和[6]->field2[7]->linebreak之后,等等。现在我想创建一个名为id[]的数组(或列表),其中包含所有的id,以及一个包含所有字段的field1[]。我怎样才能做到这一点呢?您可以对每个数组元素的索引应用模4,以确定其在四个数组

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

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

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

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

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;}
}

然后,您将存储
数据对象的数组或类似数组的结构

我如何才能做到这一点?
不是问题。它意味着“为我写”。展示你的努力和你迄今为止所做的。将多种事物放在同一个数组中似乎是一个糟糕的设计决策。我只是对一个算法感兴趣。我在考虑创建多个for循环,该循环将从[0]开始,并可能通过加载每4个元素,但这需要我编写很多for算法,我不喜欢这些算法,它看起来很糟糕,一般来说这不是一个好主意。我相信有人有更好的方法来解决这个问题。再次阅读:看起来像是一个文件中的字符串数组。我知道这是从哪里来的,但是仍然有更好(更好)的方法来读取文件。在这一点上,我必须同意@EZI。最好的学习方法是尝试。当我们做错事情时,我们的大脑倾向于学习得最好,因为一旦我们做对了,这些知识就会在很长一段时间里与我们纠缠在一起。当然,如果你对你所创建的代码毫无希望,那么把它贴在这里,朝着正确的方向推一推应该会让事情变好。我从来没有考虑过把
\uuu
本身作为一个变量名。可爱,谢谢你这就是我要找的for@JoelCoehoorn:我也喜欢这里的
。我曾经在javascript函数中使用unicode snowman作为变量。还没有在C#中尝试过。现在看起来像是Haskell风格。@JoelCoehoorn:这是一种命名约定,表示匿名函数中不会使用该参数。它起源于函数式语言(如Haskell),但它也在C#lambdas中。