Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var firstList = new List<Data1>();
- var secondList = new List<Data2>();
- var sorted = new List<Data2>();
- firstList.Each(zz => { sorted.Add(secondList.First(z => z.id_from_firstlist == zz.Id));});
- public class Test
- {
- public static void Main()
- {
- List<Item1> myList = Test.getmyList();
- List<Item2> externList = Test.getExternList();
- Test.print(myList, "Мой список:");
- Test.print(externList, "Внешний список до сортировки:");
- externList = externList.OrderBy(x => myList.FindIndex(y => x.Name == y.Name)).ToList();
- Test.print(externList, "Внешний список после сортировки:");
- }
- private static List<Item1> getmyList()
- {
- Item1[] items = new Item1[] {
- new Item1 {id = 1, Name = "P1"},
- new Item1 {id = 2, Name = "P2"},
- new Item1 {id = 3, Name = "P3"},
- new Item1 {id = 4, Name = "P4"},
- new Item1 {id = 5, Name = "P5"}
- };
- return items.ToList();
- }
- private static List<Item2> getExternList()
- {
- Item2[] items = new Item2[] {
- new Item2 { Name = "P5"},
- new Item2 { Name = "P4"},
- new Item2 { Name = "P3"},
- new Item2 { Name = "P2"},
- new Item2 { Name = "P1"}
- };
- return items.ToList();
- }
- private static void print<T>(IEnumerable<T> list, string message = "")
- {
- Console.WriteLine(message);
- foreach (var item in list)
- {
- Console.WriteLine(item.ToString());
- }
- }
- }
- class Item1
- {
- public int id { get; set; }
- public string Name { get; set; }
- public override string ToString()
- {
- return Name;
- }
- }
- class Item2
- {
- public string Name { get; set; }
- public override string ToString()
- {
- return Name;
- }
- }
- class Test
- {
- static void Main(string[] args)
- {
- var l1 = new[]
- {
- new C1() { Id = 3, Name = "Иоганн" },
- new C1() { Id = 1, Name = "Ваня" },
- new C1() { Id = 2, Name = "Джонни" }
- };
- var l2 = new[]
- {
- new C2() { Id = 1, Age = 3 },
- new C2() { Id = 3, Age = 331 },
- new C2() { Id = 2, Age = 25 }
- };
- var result =
- from main in l1
- join aux in l2.Select((c2, idx) => new { c2.Id, idx }) on main.Id equals aux.Id
- orderby aux.idx
- select main;
- foreach (var c1 in result)
- Console.WriteLine(c1.Name);
- }
- }
- class C1
- {
- public int Id { get; set; }
- public string Name { get; set; }
- }
- class C2
- {
- public int Id { get; set; }
- public int Age { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement