繁体   English   中英

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

[英]How to delete an items inside a list nested by a field

我在列表中删除有问题。

想象这样的2条记录。

项目1:ID = 1001,名称=“ A”,相关性= 1,订单= 1.00

项目2:ID = 2354,名称=“ B”,相关性= 1,订单= 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是实体内的一个集合(List)

请不允许修改实体结构或数据库。

您可以使用for循环,而不是每个循环。

另外,您可以尝试

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM