关于C# List的Remove问题,请高手指教!!!!!!!!

时间:2023-02-22 10:04:38

有一个list对象,数据如下:
IList<InfoBook> list = new List<InfoBook>();
            InfoBook ib1 = new InfoBook();
            ib1.BookId = 1;
            InfoBook ib2 = new InfoBook();
            ib2.BookId = 2;
            list.Add(ib1);
            list.Add(ib2);

现在我要删除list里面BoodId=1的对象。请问该怎么做?

4 个解决方案

#1


不知道这样行不行最近刚学的就拿出来了
list.Remove(list.Where(p => p.BookId == 1).FirstOrDefault());

#2


引用 1 楼 hwang1126 的回复:
不知道这样行不行最近刚学的就拿出来了

C# code
list.Remove(list.Where(p => p.BookId == 1).FirstOrDefault());

楼上的可以,谢谢。不知是否有不用linq的方法?

#3


如果使用Linq可以这样写
foreach (InfoBook x in list.Where(m => m.BookId == 1))
    list.Remove(x);
或者
list.Where(m => m.BookId == 1).ToList().ForEach(x => { list.Remove(x); });

#4


应该可以了 这样不是麻烦吗
for (int i = 0; i < list.Count; i++)
            {
                if (list[i].BookId == 1)
                {
                    list.Remove(list[i]);
                }
            }

#1


不知道这样行不行最近刚学的就拿出来了
list.Remove(list.Where(p => p.BookId == 1).FirstOrDefault());

#2


引用 1 楼 hwang1126 的回复:
不知道这样行不行最近刚学的就拿出来了

C# code
list.Remove(list.Where(p => p.BookId == 1).FirstOrDefault());

楼上的可以,谢谢。不知是否有不用linq的方法?

#3


如果使用Linq可以这样写
foreach (InfoBook x in list.Where(m => m.BookId == 1))
    list.Remove(x);
或者
list.Where(m => m.BookId == 1).ToList().ForEach(x => { list.Remove(x); });

#4


应该可以了 这样不是麻烦吗
for (int i = 0; i < list.Count; i++)
            {
                if (list[i].BookId == 1)
                {
                    list.Remove(list[i]);
                }
            }