Установить и получить значение вложенного класса по строке без имени класса - PullRequest
0 голосов
/ 06 ноября 2018

У меня много txt-файлов, которые содержат много данных. Например:

1.txt
parameter1_1="[1 3 21 12 42]"
parameter2_1="[4 2 28 72 46]"
parameter2_2="[2 6 46 75 76]"
58.txt
parameter1_1="[9 8 98 87 89]"
parameter1_2="[2 4 11 42 62]"
parameter2_1="[9 4 25 67 56]"
parameter2_2="[7 6 87 79 75]"

В первом текстовом файле все первое значение параметра - данные катушки. Второе значение - это данные второй катушки. Я хочу поместить все значение в один класс / объект, который содержит все значения, как вы можете видеть на картинке.

enter image description here

Когда я загружаю объект, индекс не может быть скользящим, поэтому, если я выберу индекс 1 из коллекции, я получу правильные данные.

Я создал класс, как вы можете видеть, и не могу получить свойство вложенного класса по строке.

У меня следующий класс

    public class Coil
{
    public string ID { get; set; }
}

public class FailStation : Coil
{
    public Station_1 Station_1 = new Station_1();
    public Station_2 Station_2 = new Station_2();
}

public class Station_1
{
    public string parameter1_1{ get; set; }
    public string parameter1_2 { get; set; }
}
public class Station_2
{
    public string parameter2_1{ get; set; }
    public string parameter2_2 { get; set; }
}

Я хотел бы установить и получить значение, подобное этому или что-то похожее:

FailStationcoil coil = new FailStation();
List<FailStation> AllCoil = new List<FailStation>();
coil["parameter1_1"] = "value"; //or
coil.SetPropValue("parameter1_1", "value");
coil["ID"]="1";
AllCoil.Add(coil);

1 Ответ

0 голосов
/ 07 ноября 2018

Похоже, ваши имена параметров уже сообщают вам, что такое Station, если я не читаю его.

parameter1_1 => первое число говорит вам Station_{n}, второе число говорит вам cam_term_{n}_val

Так почему бы не отбросить классы Station_1 и Station_2 и просто использовать Dictionary<string, int> или Dictionary<string, object> (если вам нужно хранить ключи без значения), как предложил @Fildor?

Отражение стоит дорого и должно использоваться только в случае крайней необходимости. Ваша ситуация, как вы уже объяснили, выглядит не так, как будто она требует этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...