2011-12-19 17 views
0

內的字典我有下一個類:LINQ的與類

public class Example 
{ 
    String name; 
    Dictionary<String, decimal> data; 

    public Example() 
    { 
     data = new Dictionary<String, decimal>(); 
    } 
} 

然後,使用LINQ我需要檢索在數據字段中的所有不同的字符串鍵。 例如:

E1:1 - [[ 「一」,2M],[ 「b」 的,3M])

E2:2 - [[ 「b」 的,2M],[ 「c」 的,3M])

我需要一個列表: 「A」, 「b」, 「C」]

我希望我是很清晰。

謝謝。

PD:我失蹤的一件事,我有一個例子列表。

+1

這不是真的清楚。那麼你有兩個'Example'的例子嗎? 'Example'是否能以某種方式訪問​​字典?或者是'Example'類中的這段代碼?如果你能給出一個簡短但完整的例子,說明你正在嘗試做什麼,以及你不知道失蹤的那一點,那將會非常有幫助。 – 2011-12-19 13:23:08

+0

嗨喬恩,我展示了2個例子來澄清這個想法,我真的有成千上萬的實例。 – Gabriel 2011-12-19 13:24:40

+0

但我的觀點是,你有一個'Example'實例的集合,並且你想要一組字符串?你的問題現在還不清楚,這就是爲什麼我建議一個簡短但完整的程序。 – 2011-12-19 13:26:09

回答

5

假設你的意思是你有例子的集合(E1,E2 ...):

var keys = examples.SelectMany(example => example.data.Keys) 
        .Distinct(); 
+0

按照定義,鍵將已經與衆不同 – 2011-12-19 13:24:43

+2

@Rob - 不在多個字典中。 – Rawling 2011-12-19 13:25:42

+0

@RobertLevy在一個單一的字典是的,但我知道他有一個實例的集合,每個實例都有自己的字典(也許我誤解了......) – 2011-12-19 13:25:47

1
var keys = 
    (from ex in examples 
    from key in ex.Data.Keys 
    select key).Distinct();