我正在遍历 Umbraco 节点列表并使用每个节点上的属性值设置我的类的属性
foreach (var node in listOfNodeWithProperty)
{
var faqProperties = new Faq
{
Question = node.GetPropertyValue<string>("question"),
Answer = node.GetPropertyValue<string>("answer"),
Schemes = node.GetPropertyValue<string>("schemes")
};
faqCollection.faqs.Add(faqProperties);
}
我的常见问题类如下
internal class Faq
{
public string Question { get; set; }
public string Answer { get; set; }
public string Schemes { get; set; }
public IEnumerable<SchemeTypes> SchemeTypes { get; set; }
}
internal class SchemeTypes
{
public string SchemeType { get; set; }
}
对于字符串来说,一切都很简单,但我想要填充 SchemeTypes 对象的值是一个逗号分隔的字符串。我如何获取这个字符串并创建一个数组来填充 SchemeTypes?
我想要 SchemeTypes 作为对象,因为我的最终输出将是 JSON
听起来您只想拆分逗号并将其投影到SchemeTypes
对象:
SchemeTypes = node.GetPropertyValue<string>("schemeTypes")
.Split(',')
.Select(t => new SchemeTypes { SchemeType = t })
.ToList() // Materialize the result
但是,SchemaTypes
当它表示单个类型时,我会警告将其用作类型名称。我会考虑这样的事情:
internal class SchemeType
{
public string Name { get; set; }
}
那是如果你真的需要一个类。你可以只在 中有一个IEnumerable<string>
属性Faq
,它会生成 JSON
schemeTypes = [ "a", "b", "c" ]
而有了额外的课程,你会得到
schemeTypes = [
{ "name": "a" },
{ "name": "b" },
{ "name": "c" }
]
您确定要使用后一种格式吗?
如果您对属性为 感到满意,则IEnumerable<string>
可以坚持使用以下结果string.Split
:
var faqProperties = new Faq
{
Question = node.GetPropertyValue<string>("question"),
Answer = node.GetPropertyValue<string>("answer"),
Schemes = node.GetPropertyValue<string>("schemes"),
SchemeTypes = node.GetPropertyValue<string>("schemeTypes").Split(',')
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句