Как перейти с массива YAML на отображение? - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь сериализовать список пользовательских объектов в YAML с помощью YAMLDOTNET, и у меня следующий результат:

fruits:
- berry:
    size: 5
- banana:
    size: 6
- coconut:
    size: 10

Не могли бы вы сказать мне, как я мог получить следующий результат?

fruits:
 berry:
   size: 5
 banana:
   size: 6
 coconut:
   size: 10

Мой класс FruitList:

public class FruitList
{
  private List<Dictionary<string,Fruit> _fruits;

  public List<Dictionary<string, Fruits>> fruits { get => _fruits; set => _fruits = value; }

  public FruitList(List<Dictionary<string, Fruits>> f)
  {
    fruits =f;
  }
}

Класс "Мои фрукты":

public class Fruit
{
   private int _size;

   public int size { get => _size; set => _size = value; }

   public Fruit(int s)
   {
    size = s;
   }
}

Моя главная:

List<Dictionary<string, Fruit>> list = new List<Dictionary<string, Fruit>>();
Dictionary<string, Fruit> dic = new Dictionary<string, Fruit>();
Fruit f = new Fruit(3);

dic.Add("berry",f);
list.add(dic);
FruitList fl = new FruitList(list);

var serializerBuilder = new SerializerBuilder();
var serializer = serializerBuilder.Build();
var serializer = new Serializer();
var yaml = serializer.Serialize(fl);
Console.Write(yaml);

Любая помощь очень ценится.

1 Ответ

1 голос
/ 01 мая 2019

Вместо List<Dictionary<string, Fruit>> у вас должен быть один Dictionary<string, Fruit>.

Прямо сейчас у вас есть список, в котором каждый элемент является словарем, содержащим отдельные элементы, и ваш вывод YAML отражает это.

...