Как объединить несколько пользовательских объектов в одном массиве в C #? - PullRequest
0 голосов
/ 06 июня 2019

У меня есть собственный список объектов, и добавив больше деталей здесь:

public static List<CustomList> MyLists = new List<CustomList>();
public class CustomList
{
    public string Name { get; set; } //
    public string Path{ get; set; } //
    public long Size { get; set; }
    public int Value { get; set; }
}
private void Form1_Load()
{
    CustomList[] list = new CustomList[5];
    list[0] = new CustomList
    {
        Name = "a1",
        Path = "c:/",
        Size = 1111,
        Value = 23
    };
    list[1] = new CustomList
    {
        Name = "a2",
        Path = "c:/",
        Size = 222,
        Value = 66
    };

    //add to MyLists
    for (int i = 0; i < list.Count(); i++)
    {
        MyLists.Add(list[i]);
    }
}

private void button1_Click(object sender, EventArgs e)
{
    //show all MyLists
    foreach (CustomList element in MyLists)
    {
        if (element != null)
        Console.WriteLine(element.Size.ToString());
    }
}

Итак, я хочу создать динамические массивы объектов, симулируемые как в коде PHP:

<?php
$list = array(
    array(
        "name" => "a1",
        "Path" => "c:/",
        "Size" => 1111,
        "Value" => 23
    ),
    array(
        "name" => "a2",
        "Path" => "c:/",
        "Size" => 222,
        "Value" => 34
    ),

    //...
    // more than 10 arrays or any number sets ...
    //...
);

Поэтому я пытаюсь написать код на C #, Я также добавил код и снова и снова изменяю часть, но это неправильно, я могу это исправить или это не поддержка в C #?

Я создаю массив класса Object и присваиваю массиву что-нибудь подобное.

//it is a wrong code
CustomList[] list = new CustomList[](
new CustomList{
    Name = "a1",
    Path = "c:/",
    Size = 1111,
    Value = 23
},
new CustomList{
    Name = "a2",
    Path = "c:/",
    Size = 222,
    Value = 66
}
);

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Вы инициализировали свой массив с () вместо {}. Вот правильный синтаксис инициализации массива:

CustomList[] list = new CustomList[]
{
    new CustomList{
        Name = "a1",
        Path = "c:/",
        Size = 1111,
        Value = 23
    },
    new CustomList{
        Name = "a2",
        Path = "c:/",
        Size = 222,
        Value = 66
    }
};

или вы можете сделать:

CustomList[] list = new []
{
    new CustomList{
        Name = "a1",
        Path = "c:/",
        Size = 1111,
        Value = 23
    },
    new CustomList{
        Name = "a2",
        Path = "c:/",
        Size = 222,
        Value = 66
    }
};

или даже:

var list = new []
{
    new CustomList{
        Name = "a1",
        Path = "c:/",
        Size = 1111,
        Value = 23
    },
    .  .  .
};
0 голосов
/ 06 июня 2019

попробуйте

var list = new List<CustomList>() { 
    new CustomList{
        Name = "a1",
        Path = "c:/",
        Size = 1111,
        Value = 23
    },
    new CustomList{
        Name = "a2",
        Path = "c:/",
        Size = 222,
        Value = 66
    } 
    }

    var array = list.ToArray();
...