2013-10-28 63 views
-4

嗨,我有通用名單ob對象學校。以學校ID爲GUID和學校名稱作爲字符串。如何在這種情況下使用guid準備逗號分隔的字符串?

說有學生證和學校名稱的屬性對象學校的名單爲:

    School Id    Name 
'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S1" 
'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S2" 
'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S3" 
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S4" 
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S5" 
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S6" 

我需要輸出這樣在選擇項目列表中的下拉列表填充:

 ID          Value 
'C33BB532-895B-4DB7-BA59-1BC5B580902B' => "S1,S2,S3" 
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S4,S5,S6" 

我使用C#與MVC。我怎麼能得到這個?

+4

名單什麼?哪裏?告訴我們你是如何創建這個列表。 – Arran

+0

'GroupBy'' Id',但有點不清楚你實際需要什麼。 – Leri

+1

其數據非常清晰。是具有學校編號和學校名稱的學校對象一覽。 s1,s2,s3 ...是名稱。 –

回答

1

您可以使用GroupBy。假設你對存儲在一類這樣的:

class Pair { 
    public Guid Id {get;set;} 
    public string Val {get;set;} 
} 

可以產生期望的結果如下:

foreach (var g in data.GroupBy(p=>Id)) { 
    Console.WriteLine(     // Change this to the desired destination 
     "{0} => {1}" 
    , g.Key          // Produces GUID 
    , string.Join(",", g => g.Select(p=>p.Val)) // Makes a comma-separated list 
    ); 
} 
+0

謝謝這對我有效。但在code._groupItems.Add(_schools.FirstOrDefault()。schoolGroupId,string.Join(「,」,_school.Select(s => s.schoolName))); –

0

嘗試組通過LINQ像

var res = from g in yourlist.GroupBy(c => c.Id) 
      select new { SchoolId = g.Key, SchoolName = string.Join(",", g.Select(gg => gg.name).ToArray()) }; 
相關問題