比较两个列表,并将不符合要求的列表添加到另一个列表中

时间:2014-09-30 11:02:10

标签: c# list telerik

我想比较两个列表,并将那些与我的要求不匹配的列表添加到另一个列表中。我真的不知道该怎么做。

我尝试了什么:

var componentForThisProject = mdal.Get_MethodComponents_Of_Project(project.Id);
var shapelist = this.diagram.Shapes;


var newlist = (from shape in shapelist
           where componentForThisProject.Any(
               p =>
               p.X_coordinate == Math.Round(shape.Position.X, 0) &&
               p.Y_coordinate == Math.Round(shape.Position.Y, 0)
               )select shape).ToList();

这项工作,但正如你所看到的那样,我做了与我想做的相反的事情。它添加了匹配的所有内容。我当然试图将==运算符更改为!=然后它只是将所有内容添加到我的新列表中。

我正在使用Telerik btw。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这有效:

            var newlist = (from shape in shapelist
                   where !componentForThisProject.Any(
                       p =>
                       p.X_coordinate == Math.Round(shape.Position.X, 0) &&
                       p.Y_coordinate == Math.Round(shape.Position.Y, 0)
                       )select shape).ToList();