【发布时间】:2023-03-25 05:11:01
【问题描述】:
我正在遍历嵌套在另一个项目数组中的项目数组。
几乎总是,内部数组包含 5 个索引,但我正在使用的提要中可能只有 4 个索引。
当我将索引添加到我的 ViewModel 时,如果缺少第五个索引,一切都会崩溃。
如何防止在这种特定情况下出现“索引超出数组范围”错误?
private List<ImageViewModel> ConvertSmugMugModel(SmugMugGallery smugMugGallery)
{
return smugMugGallery.Channel.Items.Select(i => new ImageViewModel
{
TinyImage = i.Group.Contents[0].Url,
ThumbnailUrl = i.Group.Contents[1].Url,
SmallImageUrl = i.Group.Contents[2].Url,
MediumImageUrl = i.Group.Contents[3].Url,
LargeImageUrl = i.Group.Contents[4].Url
}).ToList();
}
*注意:如果使用数组不是最合适的,我不反对移动到 iCollection 或其他对象。如果不需要的话,我只是不想增加臃肿感。
编辑
Kal 在下面的评论中询问了模型的外观。
[XmlRoot("rss")]
public class SmugMugGallery
{
[XmlElement("channel")]
public m_Channel Channel { get; set; }
public class m_Channel
{
[XmlElement("item")]
public Item[] Items { get; set; }
public class Item
{
[XmlElement("group", Namespace = "http://search.yahoo.com/mrss/")]
public m_Group Group { get; set; }
public class m_Group
{
[XmlElement("content", Namespace = "http://search.yahoo.com/mrss/")]
public Content[] Contents { get; set; }
public class Content
{
[XmlAttribute("url")]
public string Url { get; set; }
}
}
}
}
}
【问题讨论】:
标签: c# arrays nested-loops