Как использовать для цикла, чтобы найти все экземпляры подстроки в строке

public static class EnumHelper
{
    public static SelectList EnumToSelectList<TEnum>(this Type enumType, object selectedValue)
    {
        new SelectList(Enum.GetValues(enumType).Cast<TEnum>().ToList().ToDictionary(n=> n), "Key", "Value", selectedValue);
    }
}

И в вашем представлении:

@Html.DropDownListFor(model => model.Role, EnumHelper.EnumToSelectList<Role>(typeof(Role), Model.Role),  new { htmlAttributes = new { @class = "padding_right" } })
@Html.ValidationMessageFor(model => model.Role, "", new { @class = "text-danger" })

Вместо EnumToList используйте любой другой список и выберите «Ключ и значение ваших свойств списка»

0
задан BENJAMIN AXTEN 26 March 2019 в 20:23
поделиться

2 ответа

Ваш цикл для повышения NameError. вы не можете получить доступ к элементам списка в цикле for, как этот. измените его на этот, чтобы напечатать желаемый результат:

for char in str1:
    if char in list1:
        print(char)

a
a
b

для печати своей позиции вы можете использовать index:

for char in str1:
    if char in list1:
        print(list1.index(char))

0
0
1
0
ответ дан shotgunner 26 March 2019 в 20:23
поделиться

С вашим кодом довольно много проблем.

Как @Kenny Ostrom указал в своем ответе, ваш for формат неверен.

Формат цикла for:

for new_variable_name in list:
    print(new_variable_name)

new_variable_name назначается каждому элементу в этом списке

for циклы повторяются для каждого элемента в списке один раз. В вашем случае

for char in str1
    print(char)

напечатало бы

a
a
b
f
h

Другая проблема, с которой вы столкнулись, - это ненужный цикл while. Вы окружаете свой цикл for в цикле while, который будет продолжать работать и не останавливаться. Если у вас не было цикла for, это может быть полезно для вас, но в этом нет необходимости, поскольку вы уже используете цикл for.

Структура вашей программы должна выглядеть примерно так, если вы хотите использовать цикл for:

list1=['a','b','c']
str1='aabfh'
i=0
for character in str1:
   '''
   Some code here that figures out **if** the character is in list1 and then prints that character. 
   '''

Вы сможете понять это отсюда.

0
ответ дан Nick Vitha 26 March 2019 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: