2009-05-24 26 views
0

Visual Studioのショートカット/スニペットを使用すると、後で緑色のボックスを塗りつぶすのではなく、あらかじめ/自動的にコレクションを指定できますか?Visual Studioのスニペット - foreachループのコレクションを指定する方法

foreach (ListItem item in ListBox1.Items) 
{ 
    // 
} 

たとえば、ショートカット「CTRL + K、CTRL + Xのforeach」:この場合

は、私はできるだけ少ないキーストロークの数と、次のような何かを思い付くしようとしています私が繰り返し処理したいコレクションを推測し、通常は間違ってしまいます。私は、多くの場合、次のように終わる:

foreach (object var in collection_to_loop) 
{ 
     // 
} 

私はコレクションの識別子を入力し、および/またはそれはそうと、ループブロック内のハイライトされたアイテムを置くとして、それは、任意のより良い動作しません「とサラウンド」を使用する場合:

foreach (ListItem item in ListBox1.Items) 
{ 
    ListBox1.Items 
} 

これを行う方法はありますか?私はVisual Studio 2005を使用していますが、これは2008年に、またはプラグインで行うことができると言われてうれしいです。


EDIT:OK、それはそうです、だけでなく、私ははっきりと、私はReSharperの機能を見て、そしてそれはVSの機能に建てられた考えていた後、私が何であったかを説明していませんでした。それは、Resharper "Live Templates"であり、ループに入れるコレクションの種類を推測し、時間の1/4程度にすることを賢明に試みています。

Resharperがその推測をどのようにしているか、ヒントを得るために私ができること(例えば、自分が望むコレクションの識別子を強調表示するなど)について、少し洞察しました。 Jetbrainsのウェブサイトを見て、何か見つけたらここで更新します。

+0

実際にコードの構文を学び、いくつかのタイピングを行うには "運命"ですか?ここでいくつのキーストロークを保存しようとしていますか?率直に言って、私はあなたが本当にお茶のカップではないようにプログラミングを見つけるかもしれないと思います。 – DOK

+0

私は、IDEのトリックと機能を学ぼうとするのは良いことだと思っていました。ご協力ありがとうございます。 –

答えて

1

通常のIntelliSenseを使用して "ListBox1.Items"と入力し、Altキーを押しながら "foreachでコレクションを列挙する"(正確なテキストではない)を選択します。

ただし、ListBox.Items(Windows.Formsから)については厳密には型指定されていないObjectCollection型です。したがって、要素の正しい型を推測することはほとんど不可能です。 WPFの場合、Itemsプロパティは強く型付けされていないコレクションItemCollectionも返します。強く型付けされたコレクションやジェネリックコレクションがある場合、ReSharperは列挙アイテムタイプを正しく推定できます。

+0

ありがとうイリーヤ、それは完璧です。 これは強く型付けされていないということですが、私の例をもう少し一般化するべきですが、その場合でもショートカットは同等のスニペットよりも便利です。 それ以来、私は他の強くタイプのコレクションと遊んでいました。私はこれを覚えています。 –

3

私は本当にこれをどのように言うか分かりませんが、あまりにも多くの自動化を求めていると思いますか?コードスニペットは繰り返しタイピングを減らすので、いいですしかし今では、あなたが実際に入力するものを実際に推測したいと思っています。それはループの本体も推測すべきでしょうか?

CodeRushをもっと強力なコード生成機能を備えたDeveloper Expressで調べるといいかもしれませんが、あなたが示唆していることができるかどうかは分かりません。

+0

OK、多分私はたくさんのことを求めています:)しかし、私はそれが推測することを絶対に望んでいません、私は手前でそれを伝えることができるようにしたいと思います。 IE、いくつかのIEnumerableオブジェクトを強調表示したら、ショートカットを行い、foreach内でそのオブジェクトを使用したいと思います。現在の動作より論理的です。 –

関連する問題