C# 将对象添加到Umbraco控制器中的列表

C# 将对象添加到Umbraco控制器中的列表,c#,json,list,umbraco,strong-typing,C#,Json,List,Umbraco,Strong Typing,我对强类型语言相当陌生,我在一个Umbraco控制器上工作,该控制器输出一些带有日期列表的JSON "meetingTimes": [10:30, 11:30] 这很有效。现在我想输出一个包含唯一键的时间的extry字段 所以应该是这样 meetingTimes: [{ time: "10:30", key: "abcd-1234-efgh-5678" }, { time: "11:30", key: "

我对强类型语言相当陌生,我在一个Umbraco控制器上工作,该控制器输出一些带有日期列表的JSON

"meetingTimes": [10:30, 11:30]
这很有效。现在我想输出一个包含唯一键的时间的extry字段

所以应该是这样

meetingTimes: [{ time: "10:30", key: "abcd-1234-efgh-5678" }, { time: "11:30", key: "defg-1234-sktg-5678" }]
但我不知道怎么做

我当前代码中处理此问题的部分是:

try {            
                IPublishedContent content = Umbraco.Content(Guid.Parse("ff3e93f6-b34f-4664-a08b-d2eae2a0adbd"));
                var meetingDatesAvailabled = content.Value<IEnumerable<IPublishedElement>>("meetingDatesAvailable");
            
                var items = new List<object>();
               
                foreach(var meetingDate in meetingDatesAvailabled)
                {
                    if (meetingDate.Value("meetingItemDay").ToString().Substring(0, 8) == theDate) {
                        var times = meetingDate.Value<IEnumerable<IPublishedElement>>("meetingItemDayTimes");

                        foreach (var time in times)
                        {
                            items.Add(time.Value("meetingdateTimeItem").ToString());
                        }
                    }
                }

                return new { dateChosen = theDate, meetingTimes = items };
            }
试试{
IPPublishedContent content=Umbraco.content(Guid.Parse(“ff3e93f6-b34f-4664-a08b-d2eae2a0adbd”);
var meetingDatesAvailable=content.Value(“meetingDatesAvailable”);
var items=新列表();
foreach(var meetingDate中的var meetingDate可用)
{
if(meetingDate.Value(“meetingItemDay”).ToString()子字符串(0,8)=日期){
var时间=meetingDate.Value(“meetingItemDayTimes”);
foreach(以时间为单位的var时间)
{
items.Add(time.Value(“meetingdateTimeItem”).ToString();
}
}
}
返回新的{dateselected=theDate,meetingTimes=items};
}

首先,我们必须创建一个抽象会议时间的类:

public class MeetingTime
{
    public string Time { get; }
    public Guid   Key  { get; }

    public MeetingTime(string time, Guid key)
    {
        Time = time;
        Key = key;
    }
} 
然后,我们将创建一个
MeetingItem
的空列表,而不是创建一个
object
的空列表,
var items=newlist()


注意:我不知道您序列化对象的方式(例如),但很可能您必须使用一个属性来修饰
Time
Key
,以便在序列化过程中使用正确的名称。如果您不这样做,那么它将使用默认名称,
Time
Key
。我这么说是因为我在你分享的json中注意到你想成为
time
key

真棒!这正是我要找的!谢谢@莫滕哈格,非常欢迎你!
var items = new List<MeetingItem>();
foreach (var time in times)
{
    items.Add(new MeetingTime(time.Value("meetingdateTimeItem").ToString(), 
                              Guid.NewGuid())
    );
}