列表的第一個值看似簡單的問題: 我有一個字符串列表(從屬性文件中讀取):LINQ的發現在其他列表
IList<string> defaultValues = new List<string> {"0458","0309"};
和一些物品的另一個列表,每一個都具有財產字符串類型:
IList<Token> tokens = new List<Token>
{
new Token {DisplayValue = "0123"},
new Token {DisplayValue = "0309"},
new Token {DisplayValue = "0203"},
new Token {DisplayValue = "0458"},
new Token {DisplayValue = "0911"}
};
public class Token
{
public string DisplayValue { get; set; }
}
現在我想獲得的令牌,其中DisplayValue defaultValues的第一個元素(0485)相匹配的元素。如果找不到具有DisplayValue 0485的元素,則defaultvalues中的第二個元素應該匹配(0309),依此類推。
defaultValues列表可以是動態的,所以可以添加更多的值,並且總是第一個條目應該具有優先級。
因此,defaultValues列表是排序字符串的優先級列表,索引越低優先級越高。 在上面的例子中,結果應該是「0458」。
我可以做這樣的事情:
string result = string.Empty;
foreach (var searchValue in defaultValues)
{
if (tokens.Any(token => token.DisplayValue == searchValue))
{
result = searchValue;
}
}
但我覺得這樣的事情可以更典雅,並沒有做的foreach ...
輝煌,謝謝! –