你如何将此代码转换为Linq lambda表达式?
var list = new List<string[]>();
foreach (var @char in _word)
{
if (mapping.ContainsKey(@char.ToString())) // I tried with TryGetValue but my brain has thrown a stackoverflow.
list.Add(mapping[@char.ToString()]);
else
list.Add(mapping["?"]);
}
Run Code Online (Sandbox Code Playgroud)
如果有我在以前的代码中没有其他组成部分,LINQ表达式会像下面的代码,但我不知道该怎么也到这里管理关键是没有找到的情况.
var list = _word.ToCharArray()
.Where(mot => mapping.ContainsKey(mot.ToString()))
.Select(mot => mapping[mot.ToString()]);
Run Code Online (Sandbox Code Playgroud)
解决方案必须保留订单.
var list = _word.Select(mot => mapping.ContainsKey(mot.ToString()) ? mapping[mot.ToString()] : mapping["?"]);
Run Code Online (Sandbox Code Playgroud)