fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Test
  6. {
  7. public static void Main(string[] args)
  8. {
  9. Combo combo = CarregarCombo();
  10.  
  11. foreach (var grupo in combo.Grupos.OrderBy(g => g.Key))
  12. {
  13. Console.WriteLine(grupo.Text);
  14.  
  15. foreach (var item in grupo.Itens.OrderBy(c => c.Value))
  16. {
  17. Console.WriteLine(" " + item.Text);
  18. }
  19. }
  20.  
  21. Console.ReadKey();
  22. }
  23.  
  24.  
  25. private static Combo CarregarCombo()
  26. {
  27. Grupo grupo1 = new Grupo();
  28. grupo1.Text = "Grupo um";
  29. grupo1.Key = "1";
  30. grupo1.Itens = new List<Item>();
  31.  
  32. Item item1 = new Item();
  33. item1.Text = "Item1";
  34. item1.Value = "1";
  35. grupo1.Itens.Add(item1);
  36.  
  37. Item item3 = new Item();
  38. item3.Text = "Item3";
  39. item3.Value = "3";
  40. grupo1.Itens.Add(item3);
  41.  
  42. Item item2 = new Item();
  43. item2.Text = "Item2";
  44. item2.Value = "2";
  45. grupo1.Itens.Add(item2);
  46.  
  47. Grupo grupo2 = new Grupo();
  48. grupo2.Text = "Grupo dois";
  49. grupo1.Key = "2";
  50. grupo2.Itens = new List<Item>();
  51.  
  52. Item item6 = new Item();
  53. item6.Text = "Item6";
  54. item6.Value = "6";
  55. grupo2.Itens.Add(item6);
  56.  
  57. Item item4 = new Item();
  58. item4.Text = "Item4";
  59. item4.Value = "4";
  60. grupo2.Itens.Add(item4);
  61.  
  62. Item item5 = new Item();
  63. item5.Text = "Item5";
  64. item5.Value = "5";
  65. grupo2.Itens.Add(item5);
  66.  
  67. Combo combo = new Combo();
  68. combo.Grupos = new List<Grupo>();
  69. combo.Grupos.Add(grupo1);
  70. combo.Grupos.Add(grupo2);
  71.  
  72. return combo;
  73. }
  74. }
  75.  
  76. public class Combo
  77. {
  78. public List<Grupo> Grupos { get; set; }
  79. }
  80.  
  81. public class Grupo
  82. {
  83. public string Text { get; set; }
  84. public string Key { get; set; }
  85. public List<Item> Itens { get; set; }
  86. }
  87.  
  88. public class Item
  89. {
  90. public string Text { get; set; }
  91. public string Value { get; set; }
  92. public bool Selected { get; set; }
  93. }
Success #stdin #stdout 0.02s 29944KB
stdin
Standard input is empty
stdout
Grupo dois
 Item4
 Item5
 Item6
Grupo um
 Item1
 Item2
 Item3