.NET应用程序。我有这些课:
public class Product
{
public string BrandDescription { get; set; }
public string StyleNumber { get; set; }
public FamilyTree FamilyTree { get; set; }
public DssProduct DssProduct { get; set; }
public IEnumerable<OptionData> Options { get; set; }
}
public class OptionData
{
public Guid Id { get; set; }
public Colour PrimaryColour { get; set; }
public Colour SecondaryColour { get; set; }
public IEnumerable<SizeData> Sizes { get; set; }
}
public class Colour
{
public string Name { get; set; }
}
我正尝试如下向该模型添加一些示例数据。
return new ProductMessageEvents()
{
Metadata = new KafkaProductEvent.Metadata
{
Timestamp = "test",
Environment = "test"
},
Product = new KafkaProductEvent.Product
{
AgeGrading = "test",
KeycodeType = "type1",
FamilyTree = new KafkaProductEvent.FamilyTree
{
Class = new KafkaProductEvent.CodeNamePair
{
Code = "test code",
Name = "test name"
}
},
DssProduct = new KafkaProductEvent.DssProduct
{
DocumentStatus = "active"
}
},
Version = "latestVersion"
};
我尝试如下。
Options = new OptionData[]
{
new OptionData
{
PrimaryColour = new Colour
{
Name = "White"
}
},
new OptionData
{
PrimaryColour = new Colour
{
Name = "Green"
}
}
}
我收到此错误:
无法将类型ProductEvents.OptionData []隐式转换为IList
在上面的代码中,我不确定如何向选项添加数据。有人可以帮我吗 将数据添加到IEnumerable的Option字段?任何帮助,将不胜感激。谢谢
答案 0 :(得分:2)
您可以使用实现IEnumerable<T>
的任何类型,例如List<T>
或数组:
DssProduct = new KafkaProductEvent.DssProduct
{
DocumentStatus = "active"
},
Options = new OptionData[]
{ new OptionData // fist option
{ Id = Guid.NewGuid()
}
, new OptionData // second option
{ Id = Guid.NewGuid()
}
}
答案 1 :(得分:1)
IEnumerable<T>
只是一个通用接口。您可以使用实现该接口的任何具体类来初始化该字段。
最常见的是List<T>
,因此您可以使用它来初始化字段。
答案 2 :(得分:0)
只需在初始化中使用new List<OptionData>
或创建一个变量并使用它即可。
return new ProductMessageEvents()
{
Metadata = new KafkaProductEvent.Metadata
{
Timestamp = "test",
Environment = "test"
},
Product = new KafkaProductEvent.Product
{
AgeGrading = "test",
KeycodeType = "type1",
FamilyTree = new KafkaProductEvent.FamilyTree
{
Class = new KafkaProductEvent.CodeNamePair
{
Code = "test code",
Name = "test name"
}
},
DssProduct = new KafkaProductEvent.DssProduct
{
DocumentStatus = "active"
},
Options = new List<OptionData>
{
//Add all items here.
}
},
Version = "latestVersion"
};