haven’seen
isn’t seen
hadn’t seen
didn’t see
本题考查过去完成时。 句意:当我在街上走的时候,我遇到了David,我已经很多年没见过他了。 由题干可知not see这个动作发生在came across之前,所以是过去的过去。for+一段时间常和完成时连用。故C选项符合题意。