如何删除由字段嵌套的列表中的项

本文关键字:嵌套 列表 字段 何删除 删除 | 更新日期: 2023-09-27 18:23:54

我在删除列表时遇到问题。

想象一下这两张这样的唱片。

第1项:ID=1001,Name="A",Dependency=1,Order=1.00

第2项:ID=2354,Name="B",Dependency=1,Order=1.01

它们通过依赖关系以某种方式链接,网页中的视觉效果就像一个元素被另一个元素嵌套。我一直试图在前端删除此记录。数据库级别还可以。这是为了避免数据库往返,我曾从集合中删除元素并进行数据绑定刷新。但现在,我的元素嵌套了,我不知道必须这么做。

我匆忙地尝试了一下,却没有发现修改列表的问题。

        this.Entity.Items.Remove(this.CurrentItem);
        foreach(Item item in this.Entity.Items)
        {
            if(item.Dependency == this.CurrentItem.Depedency){
                this.Entity.Items.Remove(item);
            }
        }
        myRepeater.DataSource = this.Entity.Items
        myRepeater.DataBind();

然后我做了

        this.Entity.Items.ToList().RemoveAll(x => x.Depedency == this.CurrentItem.Dependency);
        myRepeater.DataSource = this.Entity.Items
        myRepeater.DataBind();

但是ToList()会重新创建一个新列表,并且不会删除同一列表中的任何内容Items是实体内的集合(列表)

请不要修改实体结构和数据库。

如何删除由字段嵌套的列表中的项

您可以使用for循环而不是for each。

此外,您可以尝试

myRepeater.DataSource = this.Entity.Items.ToList().RemoveAll(x => x.Depedency == this.CurrentItem.Dependency);