出力にフィルタリングの順序がそのまま残るようにリストをフィルタリングする方法。linqでフィルタリングの順序が元のままになるようなフィルタリング
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;
}
}
出力は、myOrderリスト(期待される出力 - AL NY)と同じ順序で必要です。
結果をアルファベット順に表示しますか? –
次に、状態の代わりにmyOrderに基づいて状態をルックアップします。そうすることで、注文はmyOrderの項目に基づいて行われます。 –