配列をハッシュに変換する最も高速かつ簡潔なコードは?

(a,b,c) -> (1 => a,2 => b,3 => c)としたい
なお。(a,undef,c)のときは、(1 => a,3 => c)とする

よろしく。