- - PR -
foreach の変数は読み取り専用なんですか?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-10 15:42
え??? 繰り返しになりますが、
foreach ステートメントは、取り出して参照することが目的です。 http://msdn2.microsoft.com/ja-jp/library/ttw7t8t6.aspx 一郎さんの仰るとおり、普通に for ステートメントを使うべきです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-08-10 15:50
Ω ΩΩ<ナ、ナンダッテェー!! どうやら私は勘違いをしていたようですね。 てっきり列挙したものを条件によって書き換えたいのだが、列挙した s が読 み取り専用なので以下略。という話だと思っていました。 んー、だとするとじゃんぬねっとさんや mio さんと同じ意見ですかね。 あ、ちょっと目を放している隙にスレが進んでいる orz 全部変更する(埋める)のであれば、やはり一郎さん案になるでしょうか。 ちなみに特定した場合でも、中身を変更することでリスト(の並び)が変更さ れてしまうので、foreach 中では変更できないという風に解釈しています。 (って、これもまどかさんとカブった orz) _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2006-08-10 15:53
>ぽぴ王子さん、じゃんぬねっとさん。 う〜む、そんな大それたものではなくてですね^^; perl だと、書けるので、.net で駄目と言われて、じゃあ皆さん素直に案1を使っていらっしゃるのかと気になっただけなのです。 一郎さん、まどかさんの仰るとおり、何故できないのか?、と考えもしたのですが。 foreach はコレクション中の1要素の参照を、そのブロック内で利用できる便利な機能、という認識なのです。 なので、サンプルの処理もアリなのかな〜、なんて思ったのですが、string は代入だから、その後に値を変更してもコレクション側に反映されないってことなんでしょうか?
そうですね。この2案の発想は浮かびませんでした。>ぽぴ王子さんありがとうございます。 ボクもぽぴ王子さん2案方式を元にしてやろうと思います。 #でも純粋にボクのサンプルのようなことができたら、とても便利だと思ふ訳だが。 | ||||||||||||
|
投稿日時: 2006-08-10 15:58
うぅ、私のクラスメンバを変更する例に対してだと思うのですが 確かに変更しないでくださいと書いてありますね。(はじめてみました) 今まで、当然ながら、 「列挙が不定である」「そのものを変更なんかはしない」「コレクションメンバ間に関連の無い処理」 という前提で普通にやってます。 これをやるべきでないと言われると
もForステートメントにしろということでしょうか? | ||||||||||||
|
投稿日時: 2006-08-10 15:59
もし仮にできた場合、意図せずやってしまった場合に恐ろしいことになると思うのは僕だけでしょうか・・・ | ||||||||||||
|
投稿日時: 2006-08-10 15:59
とか書いていたら、更にスレが伸びていますね。
じゃんぬ師匠が参照で使うべきだと仰っています。 ぽぴ王子さんも同意権のやうです・・・ ひょっとして良い方法があるのか?、と思ったのですが、皆さん for で回しているようなので、僕も素直にそうすることにします。 皆さんありがとうございました。 | ||||||||||||
|
投稿日時: 2006-08-10 16:05
そんなことはないでしょう。 >予期しない動作を防ぐため、コレクション内容の変更には使用しないでください。 であって、取得した要素の内容の変更については特に言及されていませんし。 おそらく、
とか、そんなことを想定しているんじゃないでしょうか? | ||||||||||||
|
投稿日時: 2006-08-10 16:06
>まどかさん、ひろれいさん。
ボクも、まどかさんと同じように、参照とした考え方が前提でいたのです。
これを、
こう書くのと大差ないかな〜、という認識なのです。 |