C# 如何从YAML数组切换到映射?

C# 如何从YAML数组切换到映射?,c#,yamldotnet,C#,Yamldotnet,我正在尝试使用YAMLDOTNET序列化YAML中的自定义对象列表,结果如下: fruits: - berry: size: 5 - banana: size: 6 - coconut: size: 10 你能告诉我怎样才能得到以下结果吗 fruits: berry: size: 5 banana: size: 6 coconut: size: 10 我的水果列表课: public class FruitList { private Lis

我正在尝试使用YAMLDOTNET序列化YAML中的自定义对象列表,结果如下:

fruits:
- berry:
    size: 5
- banana:
    size: 6
- coconut:
    size: 10
你能告诉我怎样才能得到以下结果吗

fruits:
 berry:
   size: 5
 banana:
   size: 6
 coconut:
   size: 10
我的水果列表课:

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;
  }
}
我的主要意见是:

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);
List List=新列表();
Dictionary dic=新字典();
果实f=新果实(3);
添加(“浆果”,f);
列表。添加(dic);
结果列表fl=新的结果列表(列表);
var serializerBuilder=new serializerBuilder();
var serializer=serializerBuilder.Build();
var serializer=new serializer();
var yaml=serializer.Serialize(fl);
Console.Write(yaml);
非常感谢您的帮助。

您应该有一本
词典,而不是
列表


现在您有一个列表,其中每个项都是一个包含单个元素的字典,您的YAML输出反映了这一点。

到目前为止您尝试了什么?我想在YAML中包含水果名称,所以我将数组类型从列表改为列表您可以共享的任何代码?当然!我编辑了我的帖子!
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);