2011-09-17 155 views
1

我想使用LINQ將列表轉換爲不同的格式。LINQ查詢幫助

的(簡化的)數據如下:

Code Name 
---------- 
X Red 
Y Yellow 
Y Red 
X Blue 
Z Green 

我想的格式是:

「X:紅色,藍色Y:黃色,紅色Z:綠」

我會很感激一些關於如何進步的提示。

由於提前,

何塞

+1

這些是什麼類型的?你究竟想要結果如何?一個字符串?你的嘗試是什麼? –

+0

這兩種類型都是字符串。我得到的嘗試返回「X:紅色,X:藍色,Y:黃色,Y:紅色......」。我無法讓分組正常工作。我想要的格式是:「X:紅色,藍色Y:黃色,紅色Z:綠色」。 – jose

+0

你應該包括你在這方面一般使用的代碼。這樣我們就可以很好地幫助您解決問題的出處以及如何糾正問題,而不僅僅是爲您提供解決方案。 –

回答

0
List<Data> list = ...; 
var query = list.GroupBy(d => d.Code, d => d.Name) 
    .Select(g => g.Key + ": " + String.Join(", ", g)); 
string result = String.Join(" ", query); 
+0

謝謝你是完美的。 – jose

1

這應該工作:

var results = codes.GroupBy(x => x.Code) 
        .Select(g => string.Format("{0}: {1}", g.Key, string.Join(",", g.Select(c => c.Name).Distinct()))) 
        .ToList(); 

輸出爲您的樣品:

X: Red,Blue 
Y: Yellow,Red 
Z: Green