- - PR -
C#構造体配列の操作
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-13 13:19
はじめまして、C#初心者です。
構造体配列の先頭行に新たなデータを1件インサートしたいのですが、 既存のデータをインデックスをずらして保存する方法がよくわかりません。 Array.Copyで試してみたんですが・・・・。 ループさせて1件づつインデックスをずらしていくのは嫌なので どなたかご伝授いただければ幸いです。 <環境> .NET2003 C# Framework1.1 <ソースはこんな感じ> struct ST_AAA { public int a; public int b; } private void MethodAAA() { ST_AAA[] st_aaa = new ST_AAA[10]; //先頭からデータ埋め for(int i = 0;i < 9;i++) { st_aaa[i].a = i; st_aaa[i].b = i+1; } //既存の9件のインデックスをずらして保存 Array.Copy(st_aaa,0,st_aaa[1],1,9); //←コンパイルエラー //先頭にデータをインサート st_aaa[0].a = 100; at_aaa[1].b = 200; } | ||||||||
|
投稿日時: 2006-07-13 13:25
C#は知らないから思いつきで検索したらこんなのありました。
http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla%3Aja%3Aofficial&q=C%23+ArrayList+Insert&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja # サイズが決まっていないならコレクションを使いましょう _________________ 最近蛇使いになれるようそっちも勉強中@やっぱり仕事に関係ないけど [ メッセージ編集済み 編集者: 想馬 編集日時 2006-07-13 13:31 ] | ||||||||
|
投稿日時: 2006-07-13 13:33
ってな場合は構造体の配列じゃなくてコレクションでやるってのが常識らしい。 | ||||||||
|
投稿日時: 2006-07-13 14:12
ご回答ありがとうございます。
やはりコレクションですか・・・・。 実は作業がVB6からC#へのコンバート なのでできればTypeの配列をそのまま使いたい という要望があったものですから・・・。 ArrayListで実験したらうまくできたので その方向で進めようと思います。 | ||||||||
|
投稿日時: 2006-07-13 15:21
VB6.0の配列にだって先頭に挿入する機能なんて無かったし、行おうとするなら「ループさせて1件づつインデックスをずらしていく」必要があったはずですよ。もしかしてCollectionを使っていたのではないですか? VB6.0のCollecionに相当する機能はSystem.Collections.DictionaryBaseです。VB6.0のCollectionとは多少使い勝手が異なります。もしくはVB6.0との互換性のために用意されているMicrosoft.VisualBasic.Collectionを用います。 Microsoft.VisualBasic名前空間には他にもVB6.0互換の命令が用意されているので、一度確認した方が良いでしょう。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ [ メッセージ編集済み 編集者: 甕星 編集日時 2006-07-13 15:25 ] | ||||||||
|
投稿日時: 2006-07-13 18:15
甕星さんへ
VB6側ではコレクションは使っていません。 ループさせてゴリゴリとインデックスをずらして 先頭の行を空けてます(苦笑)。 これはスレを立てる前に確認済みです。 ソースを簡潔にして欲しいとの要望もあるので 今回のコンバートにあたってループさせるのを やめるために悩んだ挙句スレを立てるに至ったわけです。 貴重なご意見ありがとうございました。 | ||||||||
|
投稿日時: 2006-07-13 18:21
うわ。おそろしいwww
いや↓だったらこーゆー手段をせばめちゃうだけの書き込みはしないほうがいいでしょ・・・ 誤解もされやすいし。実際に誤解されたし。 >実は作業がVB6からC#へのコンバート >なのでできればTypeの配列をそのまま使いたい [ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2006-07-13 18:22 ] | ||||||||
|
投稿日時: 2006-07-13 19:21
誤解を受けるような表現となったのは申し訳なく思っております。 皆さんのすばやい対応に感謝しております。 ありがとうございました。 以上。 |
1