首页 > 解决方案 > Linq 包含/排除逻辑

问题描述

我有一个包含名称和 TypeId 的包含列表,我想从中为具有某些 TypeId 的给定项目创建一个排除列表。但要注意的是,如果名称根本没有出现在列表中,那么它不会从任何类型中排除。

我如何用 linq 做到这一点?

       List<NameTypeFilter> includeList = new List<NameTypeFilter>();
        includeList.Add(new NameTypeFilter
        {
            Name = "N1",
            Type = "T1"
        });


        MyItem myItem1 = new MyItem();
        myItem1.Type = "T1";

        MyItem myItem2 = new MyItem();
        myItem1.Type = "T2";

        MyItem myItem3 = new MyItem();
        myItem1.Type = "T3";

        //  excludelist for myItem1 should contain nothing
        //  excludelist for myItem2 should contain N1
        //  excludelist for myItem3 should contain N1

        includeList.Add(new NameTypeFilter
        {
            Name = "N2",
            Type = "T2"
        });

        //  excludelist for myItem1 should contain N2
        //  excludelist for myItem2 should contain N1
        //  excludelist for myItem3 should contain N1,N2

标签: c#linq

解决方案


如果您共享代码示例,这将有助于更详细地理解您的查询但是根据我的假设,如果您使用 Linq 的 TakeWhile 或 SkipWhile 添加 Linq 条件,它可能会帮助您获得所需的结果


推荐阅读