0

このコードを Linq ラムダ式に変換するにはどうすればよいですか?

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["?"]);
}

前のコードにelse部分がなければ、linq式は次のコードのようになりますが、キーが見つからない場合の管理方法もわかりません。

var list = _word.ToCharArray()
                .Where(mot => mapping.ContainsKey(mot.ToString()))
                .Select(mot => mapping[mot.ToString()]);

ソリューションは順序を維持する必要があります。

4

1 に答える 1