fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5.  
  6. public class Test
  7. {
  8.  
  9. public static void Main()
  10. {
  11.  
  12. List<Item1> myList = Test.getmyList();
  13. List<Item2> externList = Test.getExternList();
  14.  
  15. Test.print(myList, "Мой список:");
  16. Test.print(externList, "Внешний список до сортировки:");
  17.  
  18. externList = externList.OrderBy(x => myList.FindIndex(y => x.Name == y.Name)).ToList();
  19.  
  20. Test.print(externList, "Внешний список после сортировки:");
  21.  
  22. }
  23.  
  24.  
  25. private static List<Item1> getmyList()
  26. {
  27. Item1[] items = new Item1[] {
  28. new Item1 {id = 1, Name = "P1"},
  29. new Item1 {id = 2, Name = "P2"},
  30. new Item1 {id = 3, Name = "P3"},
  31. new Item1 {id = 4, Name = "P4"},
  32. new Item1 {id = 5, Name = "P5"}
  33. };
  34. return items.ToList();
  35. }
  36.  
  37. private static List<Item2> getExternList()
  38. {
  39. Item2[] items = new Item2[] {
  40. new Item2 { Name = "P5"},
  41. new Item2 { Name = "P4"},
  42. new Item2 { Name = "P3"},
  43. new Item2 { Name = "P2"},
  44. new Item2 { Name = "P1"}
  45. };
  46. return items.ToList();
  47. }
  48.  
  49. private static void print<T>(IEnumerable<T> list, string message = "")
  50. {
  51. Console.WriteLine(message);
  52. foreach (var item in list)
  53. {
  54. Console.WriteLine(item.ToString());
  55. }
  56. }
  57.  
  58. }
  59.  
  60. class Item1
  61. {
  62. public int id { get; set; }
  63. public string Name { get; set; }
  64.  
  65. public override string ToString()
  66. {
  67. return Name;
  68. }
  69. }
  70.  
  71. class Item2
  72. {
  73. public string Name { get; set; }
  74. public override string ToString()
  75. {
  76. return Name;
  77. }
  78. }
  79.  
Success #stdin #stdout 0.01s 29928KB
stdin
Standard input is empty
stdout
Мой список:
P1
P2
P3
P4
P5
Внешний список до сортировки:
P5
P4
P3
P2
P1
Внешний список после сортировки:
P1
P2
P3
P4
P5