MVC如何预填充IEnumerable<;字符串>;在尝试用LINQ结果填充之前

本文关键字:填充 LINQ 结果 字符串 何预 IEnumerable lt gt MVC | 更新日期: 2023-09-27 18:06:50

我有一个相当棘手的问题,基本上我有一个类,可以有3个字符串选项,这里是基本类

public class Person
{
    public int Id {get;set;}
    public IEnumerable<string> Options {get;set;}
}

现在,基本上当调用它时,我想用3个字符串对象填充Options,所以在我的剃刀视图中,我可以使用foreach并绘制出3个字符串输入框。

但由于选项不是必需的,当用户返回此页面时,我将使用LINQ查询来提取他们选择的选项。

假设他们放了两个选项,所以在我的LINQ查询运行后,它将返回一个大小为2的IEnumerable,如果我保持原样,当我想显示3时,视图将只显示2个输入框,但对于IEnumeraable,我无法插入或添加。

实现这一目标的最佳方式是什么?

MVC如何预填充IEnumerable<;字符串>;在尝试用LINQ结果填充之前

您必须Clone该列表,然后您必须执行操作。

也许可以实例化可枚举到列表中的Options,然后用您的选项填充,这可以在构造函数中完成

public void Person()
{
   var optionsList = new List<string>();'
//Add your options
   Options = optionsList;
}

您可以为用户选择的选项创建一个新的List<string>

public void Repopulate()
{
     var allOptions = Options;
     // Linq Query..
     Options = allOptions;
}

然后让视图始终显示Options