加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何通过id删除List中的多个对象?

发布时间:2020-12-15 23:50:44 所属栏目:百科 来源:网络整理
导读:我有一个课程如下 class MyClass{ public string id { get; set; } public string data { get; set; }} 我有一系列我需要删除的ID: ListmyClass myObjArray = new ListmyClass;myClass myObj1 = new myClass { id = "1",data = "aaa"};myClass myObj2 = new
我有一个课程如下

class MyClass
{
    public string id { get; set; }
    public string data { get; set; }
}

我有一系列我需要删除的ID:

List<myClass> myObjArray = new List<myClass>;

myClass myObj1 = new myClass { id = "1",data = "aaa"};
myClass myObj2 = new myClass { id = "2",data = "bbb"};
myClass myObj3 = new myClass { id = "3",data = "ccc"};
myClass myObj4 = new myClass { id = "4",data = "ddd"};

myObjArray.Add(myObj1);
myObjArray.Add(myObj2);
myObjArray.Add(myObj3);
myObjArray.Add(myObj4);

string [] idToBeRemove = {"1","3"};

是否有任何方法可以删除myObjArray中的myObj,其中id在idToBeRemove字符串中?

解决方法

列表与LT; T>有一个方法RemoveAll将完成你需要的.与执行Where(…).ToList()之类的操作不同,它会修改现有列表而不是创建新列表.

myObjArray.RemoveAll(item => idToBeRemove.Contains(item.id));

请注意,随着要删除的项目数组的增长,您需要转移到更高性能的项目,例如HashSet< T>,尽管当前计数为2,但这并非迫切需要.

@Richardissimo还在你的问题的评论中提供了一个很好的建议,主题列表本身何时增长,字典< K,V>可能有用.同样,不是立即需要一个小列表,但随着它的增长和性能是一个问题需要记住.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读