構造が似ているリストが1つあります(文字はデータになります):
|A|B|C|D|E|F|G|
次のような別のリストもあります。
|A|B|E|G|
最初のリストと同じ長さの 3 番目のリストを作成したいが、次のように、2 番目のリストに存在しない列に「NULL」を配置します。
|A|B|NULL|NULL|E|NULL|G|
どうすればこれを達成できますか?
構造が似ているリストが1つあります(文字はデータになります):
|A|B|C|D|E|F|G|
次のような別のリストもあります。
|A|B|E|G|
最初のリストと同じ長さの 3 番目のリストを作成したいが、次のように、2 番目のリストに存在しない列に「NULL」を配置します。
|A|B|NULL|NULL|E|NULL|G|
どうすればこれを達成できますか?
Linq を使用できます。
var result =
firstList.Select(p => secondList.Contains(p) ? p : null).ToList();
リストが大きい場合、これが O(N^2) であるという事実が問題になる可能性があります。HashSet のセット メンバーシップ ルックアップは O(1) であるため、代わりに secondList を HashSet として表すことができれば、パフォーマンスを向上させることができます。
最初のリストを反復し、要素ごとに 2 番目のリストの対応する要素と比較します。一致する出力がある場合、それ以外の場合は null を出力し、最初のリストの最後に到達するまで続けます。