using System;
using System.Collections.Generic;
using System.Linq;
class Foo
{
public int ID { get; set; }
// ID will remain unique in collection
public string Name { get; set; }
}
public class Test
{
public static void Main()
{
List<Foo> sc = new List<Foo>();
sc.Add(new Foo()
{
ID = 0,
Name = "Michael"
});
sc.Add(new Foo()
{
ID = 2,
Name = "Natasha"
});
sc.Add(new Foo()
{
ID = 1,
Name = "Casandra"
});
List<string> dt = new List<string>(); //For testing replaced just by string.
dt.Add("Michael");
dt.Add("Natasha");
dt.Add("Casandra");
var ordered = dt.Select(i => sc.First(c => c.Name == i)).OrderBy(i => i.ID);
foreach (var item in ordered) { Console.WriteLine(item.Name); }
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpjbGFzcyBGb28KICAgIHsKICAgICAgICBwdWJsaWMgaW50IElEIHsgZ2V0OyBzZXQ7IH0KICAgICAgICAvLyBJRCB3aWxsIHJlbWFpbiB1bmlxdWUgaW4gY29sbGVjdGlvbgoKICAgICAgICBwdWJsaWMgc3RyaW5nIE5hbWUgeyBnZXQ7IHNldDsgfQogICAgfQoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCUxpc3Q8Rm9vPiBzYyA9IG5ldyBMaXN0PEZvbz4oKTsKCiBzYy5BZGQobmV3IEZvbygpCiB7CiAgICBJRCA9IDAsCiAgICBOYW1lID0gIk1pY2hhZWwiCiB9KTsKCiBzYy5BZGQobmV3IEZvbygpCiB7CiAgICBJRCA9IDIsCiAgICBOYW1lID0gIk5hdGFzaGEiCiB9KTsKCiBzYy5BZGQobmV3IEZvbygpCiB7CiAgICBJRCA9IDEsCiAgICBOYW1lID0gIkNhc2FuZHJhIgogfSk7CgogTGlzdDxzdHJpbmc+IGR0ID0gbmV3IExpc3Q8c3RyaW5nPigpOyAvL0ZvciB0ZXN0aW5nIHJlcGxhY2VkIGp1c3QgYnkgc3RyaW5nLgoKIGR0LkFkZCgiTWljaGFlbCIpOwoKIGR0LkFkZCgiTmF0YXNoYSIpOwoKIGR0LkFkZCgiQ2FzYW5kcmEiKTsKCiB2YXIgb3JkZXJlZCA9IGR0LlNlbGVjdChpID0+IHNjLkZpcnN0KGMgPT4gYy5OYW1lID09IGkpKS5PcmRlckJ5KGkgPT4gaS5JRCk7CiAKIGZvcmVhY2ggKHZhciBpdGVtIGluIG9yZGVyZWQpIHsgQ29uc29sZS5Xcml0ZUxpbmUoaXRlbS5OYW1lKTsgfQoJfQp9