1

構造が似ているリストが1つあります(文字はデータになります):

|A|B|C|D|E|F|G|

次のような別のリストもあります。

|A|B|E|G|

最初のリストと同じ長さの 3 番目のリストを作成したいが、次のように、2 番目のリストに存在しない列に「NULL」を配置します。

|A|B|NULL|NULL|E|NULL|G|

どうすればこれを達成できますか?

4

3 に答える 3

1

Linq を使用できます。

var result = 
    firstList.Select(p => secondList.Contains(p) ? p : null).ToList();

リストが大きい場合、これが O(N^2) であるという事実が問題になる可能性があります。HashSet のセット メンバーシップ ルックアップは O(1) であるため、代わりに secondList を HashSet として表すことができれば、パフォーマンスを向上させることができます。

于 2013-03-21T01:01:39.603 に答える
0

最初のリストを反復し、要素ごとに 2 番目のリストの対応する要素と比較します。一致する出力がある場合、それ以外の場合は null を出力し、最初のリストの最後に到達するまで続けます。

于 2013-03-21T00:59:03.480 に答える