2014-04-07 1 views
3

내 기본 목록이 ConnectedUser 개체로 구성되어 있습니다. C#의 목록 안에있는 요소를 목록에서 제거합니다.

public class ConnectedUser 
{ 
    public string phone { get; set; } 
    public HashSet<string> ConnectionIds { get; set; } 
} 

그래서 어떻게 목록에서 특정 connectionId을 제거 할 수 있습니다 ?? :

List<ConnectedUser> userList = new List<ConnectedUser>(); 

이것은 ConnectedUser 클래스입니다

+2

,이 세트가 아닌 목록입니다 - 그것은하는 것이 중요합니다 차이점을 알고 있어야합니다. 이제, 당신이 제거하고자하는'connectionId'와 연결된'ConnectedUser'를 이미 가지고 있습니까? 그렇지 않다면 모든 사용자를 조사해야합니다. –

답변

5

각 세트에서 remove를 호출하기 만하면됩니다. 해당 연결 ID가 없으면 이 실패하지 않습니다.

string connectionId = ""; 
foreach (ConnectedUser user in userList) 
    user.ConnectionIds.Remove(connectionId); 

또는

string connectionId = ""; 
userList.ForEach(u => u.ConnectionIds.Remove(connectionId)); 
1

이 시도 :

userList.ForEach(o => 
    { 
     var result = o.ConnectionIds.Except(c => c.ID == "idToBeRemoved"); 
    } 
); 
1

아래 같은 것을 할 : 첫째

foreach(var item in userList) 
{ 
    item.ConnectionIds.Remove(x=>x.Id =="1") 
} 
관련 문제