C# 使用Linq查找项的值列表

C# 使用Linq查找项的值列表,c#,linq,C#,Linq,我有一个包含int值的列表,我想使用linq表达式返回一个结果,其中属性等于列表项的值。我该怎么做 list<int> x = ... var o = anotherList.where(s => s.Id == (the list values)); I转换属性等于列表项值,另一个列表包含此列表ID: 一种方法是使用连接: I转换属性等于列表项值,另一个列表包含此列表ID: 一种方法是使用连接: 您也可以使用匿名方法: var o = anotherList.Where

我有一个包含int值的列表,我想使用linq表达式返回一个结果,其中属性等于列表项的值。我该怎么做

list<int> x = ...

var o = anotherList.where(s => s.Id == (the list values));

I转换属性等于列表项值,另一个列表包含此列表ID:

一种方法是使用连接:


I转换属性等于列表项值,另一个列表包含此列表ID:

一种方法是使用连接:


您也可以使用匿名方法:

 var o = anotherList.Where(delegate(someItem s) { return list != null && list.Contains(s.ID); });

您也可以使用匿名方法:

 var o = anotherList.Where(delegate(someItem s) { return list != null && list.Contains(s.ID); });

属性等于列表项值的确切含义是什么。您的意思是列表中包含属性值的位置吗?如果是这样,想一想这可能暗示什么。。。如何判断列表是否包含值?结果应该是什么?属性等于列表项值的确切含义是什么。您的意思是列表中包含属性值的位置吗?如果是这样,想一想这可能暗示什么。。。你怎么知道一个列表是否包含一个值?结果应该是什么?如果列表中有重复项呢?连接也会匹配重复项并返回给al。@Magnus:这正是我所说的。右侧的重复项就像sql中的内部联接一样被省略。它将匹配任何列表中的重复项。不,您不会。var anotherList=新列表{1,2,3};var thelist=新列表{1,1,1};var q=从另一个列表中的x开始,在x上的列表中加入y等于y选择x;我会给你三个1.如果列表中有重复项,join也会匹配重复项,并将它们返回给al。@Magnus:这正是我所说的。右侧的重复项就像sql中的内部联接一样被省略。它将匹配任何列表中的重复项。不,您不会。var anotherList=新列表{1,2,3};var thelist=新列表{1,1,1};var q=从另一个列表中的x开始,在x上的列表中加入y等于y选择x;我会给你三个1。
var o = from al in anotherList
        join tlId in thelist
        on al.Id equals tlId
        select al;
 var o = anotherList.Where(delegate(someItem s) { return list != null && list.Contains(s.ID); });