0

我有两个不同的列表,其中一个是一堆 ID,如 a List<int> idsList,另一个是对象列表,例如List<MyObject> myObjectList对象如下所示:

class MyObject{
    private List<int> ids;

     public MyObject(List<int> ids){
      this.ids = ids;
     }

     public List<int> Ids{
       get{
          return ids;
       }
     }
}

如您所见,每个对象可以包含一个或多个 ID(绝不是零或空 ID)。所以最后我需要知道 myObjectList 中的哪些对象具有来自我的 idsList 的任何 id。到目前为止,如果我这样做:

var ids = from g in onScreen where g.Ids.Contains(myIntVariable) select g;

它会给我一个包含 myIntVariable 的对象列表。我不知道该怎么做是将 idsList 的内容与 MyObject 中的列表进行匹配。谢谢!

4

2 回答 2

1

一种方法:

var listOfMyObjectsContainingAnIdFromIdsList = myObjectList.Where(myObject => myObject.Ids.Any(id => idsList.Contains(id)));
于 2012-08-02T20:13:47.863 回答
0

假设g是您的对象列表并且idsList是您的 int 列表:

foreach (var myObject in g.Where( obj => obj.Ids.Any( itemId => idsList.Contains(itemId) ) )) {
     //Use your myObject here
}

希望有效,

于 2012-08-02T20:16:23.223 回答