2013-03-07 55 views
-1

我有兩個列表:通過2所列出循環得到的結果

myObject object1 = new myObject(id = 1, title = "object1"}; 
myObject object2 = new myObject(id = 2, title = "object2"}; 
myObject object3 = new myObject(id = 3, title = "object3"}; 

//List 1 
List<myObject> myObjectList = new List<myObject>{object1, object2, object3}; 

//List 2 
List<int> idList = new List<int>{2, 3,5}; 

現在我需要得到輸出如下:

  1. 如果一個ID存在於兩個列表中,我需要打印「A」,
  2. 如果一個ID存在於list1而已,然後我需要打印「B」,
  3. ...如果該ID只list2存在,我需要打印「C」

我可以使用LINQ來實現這一目標?

+0

我試圖解決使用兩個的foreach這個概率loops.but我沒能拿到3的情況下才能正常運行。作爲內環從來不知道是ID不存在外loop.i不知道如果上述聲明作出任何意義... plz幫助 – user2144946 2013-03-07 15:47:57

+0

你需要一個單獨的步驟從兩個列表中得到所有唯一的ID,爲了你想要工作的其他邏輯。 – GalacticCowboy 2013-03-07 15:50:27

+0

可以LINQ幫我嗎? – user2144946 2013-03-07 15:59:09

回答

2

我會簡單地使用的ExceptIntersect

  1. List1.Intersect(列表2)= 「A」
  2. List1.Except(列表2)= 「B」
  3. List2.Except內置的功能(List1)=「C」

網上有很多關於如何做這件事的資源,作爲一個例子(我沒有看太多),看看這個鏈接 - Linq - Except one list with items in another

希望這不會把戲......

+0

我已經實現以下邏輯... 1.創建的字符串列表,將舉行中都列出了所有的唯一ID。 2.然後用戶相交和除的方法來獲得的3個senarios 3名不同勢名單。 3.然後我穿過所有獨特的項目,並檢查他們安裝在哪個類別。 \t \t \t \t 確實暗示我,如果這是解決這一概率的正確方法。如果您有任何其他建議,請告訴我。 – user2144946 2013-03-07 17:49:07

+0

這似乎恰到好處 - 你唯一的選擇是創建具有2個屬性'id'對象和'category'在大致相同的方式填寫進去。 – 2013-03-07 18:26:00