使用变量来构成属性名称

时间:2016-06-30 13:55:04

标签: c#

在C#Asp.net中,我每次都试图动态添加屏幕截图,并且限制为6个屏幕截图 - 所以我想在i小于7时进行一次while循环,并且使用i变量来访问模型的属性:

while (i < 7)
{
    var screenshot = new Screenshot()
    {
        ScreenshotId = addedScreenshot.Image(i),
        ScreenshotType = "Screenshot" + i,
        UserId = addedScreenshot.User.Id,
        IsVisible = true
     };
     _context.Screenshots.Add(screenshot);

     i++;
 }

这一行:addedScreenshot.Image(i)是我尝试这样做的地方。

我尝试了addedScreenshot.Image[i]Image(i),但都没有效果。我只是想要它,所以它就像:

addedScreenshot.Image1

addedScreenshot.Image2

错误是没有名为'Image'的属性,这是正确的,但它应该将变量连接到它。

如果有人能让我知道我哪里出错了,那就太好了。

1 个答案:

答案 0 :(得分:0)

你正在从错误的方向接近这个。如果用户决定添加第三张图片会怎样?然后是第四个?您是否只是要为模型添加越来越多的属性?

您的模型不应包含属性Image1Image2。相反它应该有List<Images> ImageList。然后使用变量i找到所需的图像。