C# 从主列表中添加和删除子列表

C# 从主列表中添加和删除子列表,c#,linq,C#,Linq,我有两个列表,例如类型的主列表和相同类型的子列表 现在有两个条件 在一种情况下,我想从主列表和子列表中删除整个子列表项 在另一种情况下,只需在主列表中添加所有子列表项 到目前为止,我已经使用foreach循环实现了这一点,但现在我只想使用LINQ概念来实现 有什么办法吗?根据我对你问题的理解 List<Object> x = new List<Object>(); List<Object> y = new L

我有两个列表,例如类型
的主列表和相同类型的子列表 现在有两个条件

  • 在一种情况下,我想从主列表和子列表中删除整个子列表项
  • 在另一种情况下,只需在主列表中添加所有子列表项
到目前为止,我已经使用foreach循环实现了这一点,但现在我只想使用LINQ概念来实现


有什么办法吗?

根据我对你问题的理解

            List<Object> x = new List<Object>();
            List<Object> y = new List<Object>();

            if (somecondition)
            {
                x = x.Except(y).ToList();
            }
            else if (anotherCondition)
            {
                x = x.Concat(y).ToList();
            }
List x=新列表();
列表y=新列表();
如果(某些条件)
{
x=x.除了(y).ToList();
}
else if(另一种情况)
{
x=x.Concat(y.ToList();
}

感谢您发布您的想法,从@Sweeper idea获得了确切的答案,我只是通过使用int类型列表来解决这个问题,我在这里发布我的答案

       `List<int> MainList = new List<int>() { 1, 2, 3, 4, 5 };
        List<int> SubList = new List<int>() { 4,5};

        MainList=MainList.Except(SubList).ToList();

        MainList = MainList.Union(SubList).ToList();`
`List MainList=new List(){1,2,3,4,5};
列表子列表=新列表(){4,5};
MainList=MainList.Except(SubList.ToList();
MainList=MainList.Union(SubList.ToList()`

为什么要使用LINQ?你能提供你当前的代码吗?简而言之,我只想实现交并运算。你能提供你当前的代码吗?请原谅,如果
.Intersect(…)
.Union(…)
对您来说不够,您应该显示您当前的代码,以便我们可以看到您当前正在执行的操作。那么,这个主列表是包含列表还是仅包含对象?@Smits,你能在你的问题中说清楚吗,因为intersect不是“从主列表中删除子列表”OP想要intersect和union。交叉是不一样的,除非和UNION是不一样的CONTAT。考虑集合:x:<代码> 1,2,3//>和y:<代码> 2,3。Intersect将返回
2
。Exception将返回
1
。Concat将返回
1,2,3,2,3
。工会将返回
1,2,3
@john,仅从这个难以回答的问题返回。;因为op状态“从主列表中删除子列表”在两个列表中都不常见。我的观点是op请求蓝色,然后评论他真的想要红色。然后他回答说他需要维奥莱特。我们都错了。Op不知道。如果他在问题中发布了他现有的代码,大家都会很清楚。请注意,
Except
不是
Intersect
,原因是我在对Damitha答案的评论中提供的。但是,Except与我想要的完全一样。Smits,如果您询问其他选择,请在将来发布您的工作代码,因为在您的问题和您的评论之间,您让每个人都感到困惑。如果您发布了代码,那么每个人都会清楚地知道您想要实现什么。