在C#中从列表中的列表中删除一个元素。

3

我的情况是,我的基本列表由ConnectedUser对象组成。

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

这是ConnectedUser类:
public class ConnectedUser
{
  public string phone { get; set; }
  public HashSet<string> ConnectionIds { get; set; }
}

那么,我该如何从列表中删除特定的 connectionId

2
首先,这是一个集合而不是列表 - 意识到这种差异很重要。现在,您是否已经有与要删除的 connectionId 相关联的 ConnectedUser?如果没有,您将不得不查看 所有 用户... - Jon Skeet
3个回答

6

只需在每个集合中调用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")
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接