こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

List<T> クラスでデータを入れても同じになる

Wireless_unit_sigクラスというのにデータを入れていきたいのですが、読み込んだファイルの中にデータが20000データぐらいあるため、Listジェネリッククラスというので宣言してみました。




List<Wireless_unit_sig^>^ Wireless_ID_str02 = gcnew List<Wireless_unit_sig^>();



この時に、

Wireless_ID_str02[i]->day_name = split[0];
Wireless_ID_str02[i]->month = split[1];
Wireless_ID_str02[i]->day = split[2];
Wireless_ID_str02[i]->time = split[3];
Wireless_ID_str02[i]->year = split[4];
Wireless_ID_str02[i]->cmd1 = split[5];
Wireless_ID_str02[i]->cmd2 = split[6];
Wireless_ID_str02[i]->ID = split[7];
Wireless_ID_str02[i]->sig1 = split[8];
Wireless_ID_str02[i]->sig2 = split[9];
Wireless_ID_str02[i]->batt_mount = split[10];
Wireless_ID_str02[i]->m_rssi = split[11];
Wireless_ID_str02[i]->s_rssi = split[12];
Wireless_ID_str02[i]->version = split[13];

このようにデータを入れていこうとしたのですが、エラーが出るのですが、データを収納していく方法というのはどのようにしていけばよいのでしょうか?


作成したクラスは次のようなものです。

どうぞ、教えて頂きますよう、お願い致します。


ref class Wireless_unit_sig
{
private:

public:

String^day_name;
String^month;
String^ day;
String^time;
String^year;
String^cmd1;

String^ cmd2;
String^ID;
String^sig1;
String^sig2;

String^ batt_mount;
String^m_rssi;
String^s_rssi;
String^version;

String^s_rssi_fixed;


public:
Wireless_unit_sig()
{
day_name = "test";
month = "test";
day = "test";
time = "test";
year = "test";
cmd1 = "test";
cmd2 = "test";
ID = "test";
sig1 = "test";
sig2 = "test";
batt_mount = "test";
m_rssi = "test";
s_rssi = "test";
version = "test";

s_rssi_fixed = "test";
}

};


}

投稿日時 - 2012-04-29 16:49:15

QNo.7447795

すぐに回答ほしいです

質問者が選んだベストアンサー

>このようにデータを入れていこうとしたのですが、エラーが出るのですが、データを収納していく方法というのはどのようにしていけばよいのでしょうか?

エラーが出るなら出るで、そのエラーメッセージをそっくりそのまま書きましょう。
ただたんにエラーといわれたって、あなた以外には何の事かさっぱりわかりません。

Wireless_ID_str02.Add(gcnew Wireless_unit_sig());

を忘れてるだけのような気もしますが。

>List<Wireless_unit_sig^>^ Wireless_ID_str02 = gcnew List<Wireless_unit_sig^>();

何を意味するのか、ちゃんと理解してますか?

投稿日時 - 2012-04-29 18:44:31

お礼

Listジェネリッククラスというのを

http://msdn.microsoft.com/ja-jp/library/6sh2ey19(v=vs.80).aspx


このサイトをみて真似て見ました。

List<String^>^ dinosaurs = gcnew List<String^>();


これを

>List<Wireless_unit_sig^>^ Wireless_ID_str02 = gcnew List<Wireless_unit_sig^>();


このようにしているのですが、このような使い方は20000くらいあるデータをそれぞれのクラスに入れていくようなやり方というのはできないのでしょうか?

string型などでしか使う方法しかないのでしょうか?

投稿日時 - 2012-04-29 20:20:15

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

>このようにしているのですが、このような使い方は20000くらいあるデータをそれぞれのクラスに入れていくようなやり方というのはできないのでしょうか?

できます。
あなたが

>List<Wireless_unit_sig^>^ Wireless_ID_str02 = gcnew List<Wireless_unit_sig^>();

の意味を理解してないだけです。
真似ること自体には何ら問題はないですけど意味を理解していかないと同じ事を繰り返しますよ。

既に繰り返されてるようですが・・・

#1 に問題と思われる点も書いてるのに、なぜ無視するかなぁ

投稿日時 - 2012-04-29 23:00:53

お礼

回答頂きありがとうございます。いろいろとお世話になっております。
すみません。なんか頭がこんがらがってきたので・・・  一度仕切り直しさせてください・・・w

投稿日時 - 2012-04-30 09:37:56

ANo.3

できました!じゃなかったんですか?
http://okwave.jp/qa/q7443919.html

#1でも言われてますが、Wireless_unit_sigのオブジェクトを作ってAdd、をしてないから失敗してんだとは思いますが。

投稿日時 - 2012-04-29 22:13:23

お礼

すみません。なんか頭がこんがらがってきたので・・・  一度仕切り直しさせてください・・・w


後で気づいたんですが、
Wireless_ID_str02->Add(Wireless_unit_sig_temp);

このように入れていった時にWireless_ID_str02[1]~Wireless_ID_str02[20000]の中に入っているデータが全部同じデータ(しかもテキストファイルの最後の行のデータ)が入っているというのに気づきまして・・・

投稿日時 - 2012-04-30 09:37:04

ANo.2

> エラーが出るのですが、

いやだから、どこで/どんなエラーが出るんだ、と。

投稿日時 - 2012-04-29 20:30:33

お礼

すみません。なんか頭がこんがらがってきたので・・・  一度仕切り直しさせてください・・・w

投稿日時 - 2012-04-30 09:35:11

あなたにオススメの質問