更改列表中项的属性

本文关键字:属性 列表 | 更新日期: 2023-09-27 17:57:12

如何以最简洁的方式更改列表中单个项目的单个属性?

    public static class QuestionHelper
    {
        public static IEnumerable<SelectListItem> GetSecurityQuestions()
        {
            return new[]
                {
                    new SelectListItem { Value = "What was your childhood nickname?", Text = "What was your childhood nickname?"},
                    new SelectListItem { Value = "What is the name of your favorite childhood friend?", Text = "What is the name of your favorite childhood friend?"},
                    ...
                };
        }
    }

我想生成此列表,根据字符串将 Selected 属性设置为一项:

string selectText = "What is the name of your favorite childhood friend?";
form.SecurityQuestions = QuestionHelper.GetSecurityQuestions().Select(x => { /*Set Selected = true for SelectListItem where item.Text == selectedText */ } );
return PartialView(form); 

注意:这必须考虑if(selectedText == null),然后将第一项设置为"已选中"

更改列表中项的属性

不要用 LINQ 做,用 foreach 做!

form.SecurityQuestions = QuestionHelper.GetSecurityQuestions();
foreach(var item in form.SecurityQuestions)
    item.Selected = item.Text == selectedText;
if(selectedText == null)  // Select the first item by default
    form.SecurityQuestions.First().Selected = true;

创建 LINQ 是为了查询 no 以修改对象的状态。