Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 循环数组以设置viewmodel属性。如果索引没有';不存在?_C#_Arrays_Nested Loops - Fatal编程技术网

C# 循环数组以设置viewmodel属性。如果索引没有';不存在?

C# 循环数组以设置viewmodel属性。如果索引没有';不存在?,c#,arrays,nested-loops,C#,Arrays,Nested Loops,我在一个嵌套在另一个项目数组中的项目数组中循环 几乎总是,内部数组包含5个索引,但我正在使用的提要中很可能只有4个索引 当我将索引添加到ViewModel时,如果缺少第五个索引,则一切都会崩溃 在此特定场景中,如何防止“索引超出数组边界”错误 private List<ImageViewModel> ConvertSmugMugModel(SmugMugGallery smugMugGallery) { return smugMugGallery.Channel.Items.

我在一个嵌套在另一个项目数组中的项目数组中循环

几乎总是,内部数组包含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();
}

我的第一个想法就是用这个?接线员,像这样:

    private List<ImageViewModel> ConvertSmugMugModel(SmugMugModel 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.Count() > 4 ? i.Group.Contents[4].Url:new Url("blank")
        }).ToList();
    }
私有列表转换器SmugMugModel(SmugMugModel smugMugGallery)
{
返回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.Count()>4?i.Group.Contents[4]。Url:新Url(“空白”)
}).ToList();
}
您可能还希望将该检查也放入其余元素中,除非您101%确定不会遇到少于4个元素。因此:

    private List<ImageViewModel> ConvertSmugMugModel(SmugMugModel smugMugGallery)
    {
        return smugMugGallery.Channel.Items.Select(i => new ImageViewModel
        {
            TinyImage = i.Group.Contents.Count() > 0 ? i.Group.Contents[0].Url:new Url("blank"),
            ThumbnailUrl = i.Group.Contents.Count() > 1 ? i.Group.Contents[1].Url:new Url("blank"),
            SmallImageUrl = i.Group.Contents.Count() > 2 ? i.Group.Contents[2].Url:new Url("blank"),
            MediumImageUrl = i.Group.Contents.Count() > 3 ? i.Group.Contents[3].Url:new Url("blank"),
            LargeImageUrl = i.Group.Contents.Count() > 4 ? i.Group.Contents[4].Url:new Url("blank")
        }).ToList();
    }
私有列表转换器SmugMugModel(SmugMugModel smugMugGallery)
{
返回smugMugGallery.Channel.Items.Select(i=>new ImageViewModel
{
TinyImage=i.Group.Contents.Count()>0?i.Group.Contents[0]。Url:新Url(“空白”),
ThumbnailUrl=i.Group.Contents.Count()>1?i.Group.Contents[1]。Url:新Url(“空白”),
SmallImageUrl=i.Group.Contents.Count()>2?i.Group.Contents[2]。Url:新Url(“空白”),
MediumImageUrl=i.Group.Contents.Count()>3?i.Group.Contents[3]。Url:新Url(“空白”),
LargeImageUrl=i.Group.Contents.Count()>4?i.Group.Contents[4]。Url:新Url(“空白”)
}).ToList();
}

我的第一个想法是使用?接线员,像这样:

    private List<ImageViewModel> ConvertSmugMugModel(SmugMugModel 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.Count() > 4 ? i.Group.Contents[4].Url:new Url("blank")
        }).ToList();
    }
私有列表转换器SmugMugModel(SmugMugModel smugMugGallery)
{
返回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.Count()>4?i.Group.Contents[4]。Url:新Url(“空白”)
}).ToList();
}
您可能还希望将该检查也放入其余元素中,除非您101%确定不会遇到少于4个元素。因此:

    private List<ImageViewModel> ConvertSmugMugModel(SmugMugModel smugMugGallery)
    {
        return smugMugGallery.Channel.Items.Select(i => new ImageViewModel
        {
            TinyImage = i.Group.Contents.Count() > 0 ? i.Group.Contents[0].Url:new Url("blank"),
            ThumbnailUrl = i.Group.Contents.Count() > 1 ? i.Group.Contents[1].Url:new Url("blank"),
            SmallImageUrl = i.Group.Contents.Count() > 2 ? i.Group.Contents[2].Url:new Url("blank"),
            MediumImageUrl = i.Group.Contents.Count() > 3 ? i.Group.Contents[3].Url:new Url("blank"),
            LargeImageUrl = i.Group.Contents.Count() > 4 ? i.Group.Contents[4].Url:new Url("blank")
        }).ToList();
    }
私有列表转换器SmugMugModel(SmugMugModel smugMugGallery)
{
返回smugMugGallery.Channel.Items.Select(i=>new ImageViewModel
{
TinyImage=i.Group.Contents.Count()>0?i.Group.Contents[0]。Url:新Url(“空白”),
ThumbnailUrl=i.Group.Contents.Count()>1?i.Group.Contents[1]。Url:新Url(“空白”),
SmallImageUrl=i.Group.Contents.Count()>2?i.Group.Contents[2]。Url:新Url(“空白”),
MediumImageUrl=i.Group.Contents.Count()>3?i.Group.Contents[3]。Url:新Url(“空白”),
LargeImageUrl=i.Group.Contents.Count()>4?i.Group.Contents[4]。Url:新Url(“空白”)
}).ToList();
}

你不知道吗。我用
I.Group.Contents.Length()
尝试了同样的方法,但失败了。我想我应该仔细阅读我的方法。现在我很好奇Group.Contents对象是什么类型,正如我所期望的。Count是一个属性而不是一个方法。你不知道吗。我用
I.Group.Contents.Length()
尝试了同样的方法,但失败了。我想我应该仔细阅读我的方法。现在我很好奇Group.Contents对象是什么类型,正如我所期望的那样。Count应该是一个属性而不是一个方法。