How to filter a list such that filtering order remains intact in the output.
void Main()
{
var states = new List<State>() { new State("CA", "California"),
new State("NY", "New York"),
new State("AL", "Alabama"),
new State("NV", "Nevada")};
var myOrder = new List<string>() {"AL", "NY"};
var result = states.Where(s => myOrder.Exists(c => string.Equals(c, s.Code, StringComparison.OrdinalIgnoreCase)));
foreach(var res in result)
{
Console.WriteLine(res.Code);
}
//this outputs - NY AL
}
public class State
{
public string Code;
public string Name;
public State(string code, string name)
{
Code = code;
Name = name;
}
}
I need the output in the same order as given in myOrder list (expected output - AL NY).