2013-06-01 70 views
-4

我的代碼:列表<String[]> .groupby /的OrderBy的LINQ

List<string[]> records=new List<string[]>(); 
..... 
.... 
#Now i has list in records 
var sortedRecords = records 
        .OrderBy(o => o[0]) 
        .ThenBy(t=>t[3]) 
        .ToList(); 
..... 

欲由[0]元件中,通過[3]元素每組排序組。我沒有得到正確的輸出結果。怎麼了?

+2

那麼你期待輸出是什麼,你會得到什麼?沒有足夠的細節可以消除。 – TyCobb

+0

我編輯了它的記錄,我首先聲明 – Civa

+0

我想記錄組由[0]元素和按每個組中的[3]元素排序 – Civa

回答

3

你可以使用GroupBy o[0]拳頭,然後它會給你分組的結果。然後每個組可以通過d[3]訂購商品,由於按組合排序的分組列表,您可以使用SelectMany方法將其平滑回您想要的列表中。

var sortedRecords = records 
        .GroupBy(o => o[0]) 
        .Select(g => g.OrderBy(d => d[3])) 
        .SelectMany(g=>g) 
        .ToList(); 
+0

感謝它的工作完美 – Civa

+0

@Damith你能解釋一下嗎? –