2014-02-14 114 views
-2

我有幾個不同的類(R,L,S)幾個列表:從不同的列表轉換列表以字典與關鍵

List<R> someListR = ...; 
List<L> someListL = ...; 
List<S> someListS = ...; 

每個類都有一個整數Id字段但它們都具有唯一的ID。

我想someList3轉換爲Dictionary<string, S>鍵爲:

R.Id + ":" + L.Id 

編輯:

該列表的大小可以是不同的,在這種情況下我會創建一個關鍵。

例如一個列表R具有:

R1.Id = 111; 
R2.Id = 222; 
R3.Id = 333; 

和列表L:

L1.Id = 123; 
L2.Id = 234; 
L3.Id = 345; 
L4.Id = 456; 

我想創建密鑰=>值詞典這樣的:

111:123 => S1 
222:234 => S2 
333:345 => S3 
+0

爲什麼downvote? – stackErr

+0

閱讀黃金法則https://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx –

+0

問題不明確。所有三個班的Id都一樣嗎?顯示簡化了樣本輸入和預期輸出。 – MarcinJuraszek

回答

3

我我仍然不確定我得到你的問題,但看起來像你需要Zip方法:

var result = listL.Zip(listR, (l,r) => new { l, r }) 
        .Zip(listS, (x, s) => new { x.l, x.r, x.s }) 
        .ToDictionary(x => x.l.ID + ":" + x.r.ID, x => x.s);