2013-02-12 4 views
0

다른 목록에 할당 할 각 항목을 사용문자열을 분할 나는 사용자에게 할당 할 역할 목록이

var userRoles = new List<Role> 
{ 
    listRoles.First(x => x.RoleName == "ROLE1") 
} 

하자 :

var role1 = new Role { ApplicationName = "XXX", RoleName = "ROLE1" }; 
var role2 = new Role { ApplicationName = "XXX", RoleName = "ROLE2" }; 
var role3 = new Role { ApplicationName = "XXX", RoleName = "ROLE3" }; 

List<Role> listRoles = new List<Role> 
{ 
    role1, 
    role2, 
    role3 
}; 

내가 이런 특정 역할을 할당 할 수 있습니다 내 사용자에게 추가 할 역할이 나열된 문자열이 있다고 가정하십시오.

string listRoles = "ROLE1;ROLE3"; 

내 질문 : 내 사용자에게 역할 목록을 할당하려면 어떻게해야합니까?

나는 시도 :

var userRoles = new List<Role> 
{ 
    foreach(var role in listRoles.Split(";") 
    { 
     listRoles.First(x => x.RoleName == role); 
    } 
} 

나는 오류를 컴파일 얻었다.

+2

그리고 그 컴파일 오류가 무엇입니까? –

답변

0

collection initializer 안에 foreach 루프를 사용하려고하면 할 수 없습니다. 대신 다음을 할 수 있습니다 :

var userRoles = new List<Roles>(); 

foreach(var role in listRoles.Split(";")) 
{ 
    userRoles.Add(listRoles.First(x => x.RoleName == role)) 
} 
+0

감사합니다. 이것은 내 문제를 해결했다. – Bronzato

1

문자열과 원래 역할 목록 모두에 동일한 변수 이름 listRoles을 사용했기 때문에 컴파일 오류가 발생했습니다.

관련 문제