在C#中对两种类型的条件使用foreach

Pol*_*Dev 5 c# foreach

我使用下拉菜单进行搜索。文本值应不同于该值。因此,我创建了两种类型的方法:

    List<string> lstRoles = new List<string>();
    lstRoles = _repository.GetRolesForFindJobseekers();
    List<string> lstFunctions = new List<string>();
    lstFunctions = _repository.GetFunctionsForRolesFindJobSeekers();


    List<SelectListItem> selectListRoles = new List<SelectListItem>();

    int i = 1;
    foreach (string role in lstRoles)
    {

            selectListRoles.Add(new SelectListItem
            {
                Text = role,
                Value = role,
                Selected = (i == 0)
            });

            i++;

    }
    ViewData["RolesForJobSeekers"] = selectListRoles;
Run Code Online (Sandbox Code Playgroud)

lstFunctions应该出现在值字段中。我将如何添加呢?

Was*_*ain 2

您可以首先将这两个列表合并为一个,然后循环该列表。

var lstCombined =
    lstRoles
     .Zip(lstFunctions, (role, function) => new {Role = role, Function = function}).ToList();

int i = 1;

foreach (var item in lstCombined)
{
    selectListRoles.Add(new SelectListItem
                            {
                                Text = item.Role,
                                Value = item.Function,
                                Selected = (i == 0)
                            });

    i++;
}
Run Code Online (Sandbox Code Playgroud)