C# 过滤列表<;目标1>;使用另一个列表<;目标2>;

C# 过滤列表<;目标1>;使用另一个列表<;目标2>;,c#,linq,C#,Linq,很抱歉发布这个愚蠢的问题,但我确实需要你的帮助 我有两个c#格式的列表。让我们把它们称为list listObjet1和list listObjet2 问题是:我想根据objet2和objet1中的一些匹配值,以某种方式过滤list public class Objet1 { public int Id { get; set; } public string Libelle { get; set; } public string IdObjet2 { get; se

很抱歉发布这个愚蠢的问题,但我确实需要你的帮助 我有两个c#格式的列表。让我们把它们称为
list listObjet1
list listObjet2

问题是:我想根据
objet2
objet1
中的一些匹配值,以某种方式过滤
list

public class Objet1 
{
    public int Id { get; set; }

    public string Libelle { get; set; }

    public string IdObjet2 { get; set; }
 }
public class Objet2 
{
    public int Id { get; set; }

    public string Libelle { get; set; }

    public string IdTrain { get; set; }
 }
我渴望有一个
列表
,其中
Objet2.Id
等于
Objet1.Id
,我尝试了以下Linq

 List<Objet1> listObjet1= (listObjet1.Select(p => p.id).Contains(listObjet2.Select(q=>q.idObjet1)))toList(); 
 List<Objet1> listObjet1= (listObjet1.Select(p => p.id).Equal(listObjet2.Select(q=>q.idObjet1))).toList();   
List listObjet1=(listObjet1.Select(p=>p.id).Contains(listObjet2.Select(q=>q.idObjet1)))toList();
List listObjet1=(listObjet1.Select(p=>p.id).Equal(listObjet2.Select(q=>q.idObjet1)).toList();
或者
Equal()
它只能返回一些我不需要的列表,比如
List


我需要的只是一个
列表

您正在寻找一个简单的
加入

var result = listObjet1.Join(listObjet2, o1 => o1.Id, o2 => o2.Id, (o1, o2) => o1).ToList();

听起来你想找到相交的结果?如果是这样,您可以使用Linq扩展方法
Intersects
-您可以使用自定义相等比较器-您的意思是listObject1包含ID包含在listObject2的ID列表中的对象吗?我在这里给出了类似问题的答案,谢谢大家;我使用了@Dominic Kexel的解决方案谢谢,这正是我想要的