如何過濾列表,使過濾順序在輸出中保持不變。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中的項目。 –