从C#中列表内的列表中删除元素。

从C#中列表内的列表中删除元素。,c#,linq,list,C#,Linq,List,我的基本列表由ConnectedUser对象组成 List<ConnectedUser> userList = new List<ConnectedUser>(); List userList=newlist(); 这是ConnectedUser类: public class ConnectedUser { public string phone { get; set; } public HashSet<string> ConnectionIds

我的基本列表由ConnectedUser对象组成

List<ConnectedUser> userList = new List<ConnectedUser>();
List userList=newlist();
这是ConnectedUser类:

public class ConnectedUser
{
  public string phone { get; set; }
  public HashSet<string> ConnectionIds { get; set; }
}
公共类ConnectedUser
{
公用字符串电话{get;set;}
公共哈希集连接ID{get;set;}
}

那么,如何从列表中删除特定的连接ID

只需在每个集合中调用remove。如果集合中没有这样的连接id,将不会失败

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

试试这个:

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

执行以下操作:

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

首先,它是一个集合,而不是一个列表-重要的是要意识到其中的差异。现在,您是否已经有了与要删除的
连接ID
关联的
连接用户
?如果没有,你将不得不查看所有的用户。。。
foreach(var item in userList)
{
  item.ConnectionIds.Remove(x=>x.Id =="1")
}