List<T>のタイプを調べる方法は?

このQ&Aのポイント
  • C# を使用してList<T>のタイプを調べる方法について知りたいです。
  • 具体的な例として、List<string>やList<int>の場合、どのようにタイプを確認すればいいのか教えてください。
  • MessageBox.Showを使用してタイプを表示させると、リストの要素のタイプが表示されますが、List<T>自体のタイプの表示方法が分かりません。
回答を見る
  • ベストアンサー

List<T>のタイプを調べる方法は?

C# を使用しています。 たとえば {  string str;  MessageBox.Show(obj.GetType().Name); } これだと[string]が表示されます。 次に {  List<int> ilist = new List<int>(); MessageBox.Show(obj.GetType().Name); } これだと[List`1]が表示されます。 これだけでもListってことだけはわかるのですが 最後に {  List<int> ilist = new List<int>();  List<string> slist = new List<string>();  MessageBox.Show(ilist.GetType().Name);  //→[int]  MessageBox.Show(slist.GetType().Name);  //→[string] } この場合に [string],[int]と表示させるにはどうすれば よいのでしょうか?

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

  • ベストアンサー
回答No.1

#intはSystem.Int32のC#での呼び名。 #stringはSystem.StringのC#での呼び名。

MetalDragon
質問者

お礼

ありがとうございました。 思い通りの動作が確認できました。

関連するQ&A

  • C#のListの要素がHashtableの並べ替え

    Listの要素がHashtableなのですが、Hashtableの特定のキーでListを並べ替える事ができるでしょうか? 例えば次の様な場合 int[] pid = new int[] { 2, 1, 3 }; string [] pname = new string[] { "田中", "鈴木", "本田" }; string[] pref = new string[] { "埼玉", "群馬", "千葉" }; int[] presult = new int[] { 65, 38, 52 }; List<object> usertList = new List<object>(); for (int i = 0; i <= 2; ++i) { Hashtable t_obj = new Hashtable(); t_obj["pid"] = pid[i]; t_obj["pname"] = name[i]; t_obj["pref"] = pref[i]; t_obj["presult"] = presult[i]; usertList.Add(t_obj); } usertListを pidに従って並べ替える presultに従って並べ替える presultとpidに従って並べ替える という事を行いたいのですが、どうすればよいか分かりません。 申し訳ありませんが、教えていただけないでしょうか?

  • ファイル検索の方法

    フォルダ内にある、最後が「D00」で終わるファイルを表示させたいのですがうまくいきません。 以下のようなコードを書いたのですが、「*D00」の「*」の使い方が悪いのでしょうか? import java.io.*; class D00_gets { public static void main(String args[]) { String Dir_Name = "E:\\TEST\\TestData20040106"; File D_File = new File(Dir_Name); String list1[] = D_File.list(); String str01 = "*D00"; for(int i = 0;i<list1.length; i++) { if(list1[i].equals(str01)) System.out.println(list1[i]); } } }

    • ベストアンサー
    • Java
  • Generic.Listに1次元配列の配列を格納したい(VB2005)

    VB2005の質問です。 変数ghogeにString型の1次元配列の配列を格納したいと考えています。 ----------------------------------------------- 'a) Dim hoge()() As string = _       {New string() {"a1", "b1", "c1"}, _       New string() {"a2", "b2", "c2"}, _       New string() {"a3", "b3", "c3"}} Dim ghoge As New Generic.List(of )   'b) MessageBox.Show(ghoge(1)(1))      ' "b2"と表示したい ----------------------------------------------- 質問内容は、(a)を(b)の初期値として設定するにはどのようにすればよいか、ということです。 (b)がGeneric.ListでなくArrayListの場合だと、   Dim ghoge As New ArrayList(hoge) でhoge配列を格納できますが、Generic.Listの場合はどのような構文にすればよいでしょうか。 現在は、下記のような処理でghogeに値を格納しています。 ------------------------------------------------------------ Dim ghoge As New Generic.List(Of Generic.List(Of String)) Dim aryhoge1 As New Generic.List(Of String)(New String() {"a1", "b1", "c1"}) Dim aryhoge2 As New Generic.List(Of String)(New String() {"a2", "b2", "c2"}) gary_hoge.Add(ary_hoge1) gary_hoge.Add(ary_hoge2) MessageBox.Show(gary_hoge(1)(1))    ' "b2"と表示される ------------------------------------------------------------ どうぞよろしくお願い致します。

  • StrutsでJSPからListを受け取りたい

    JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。 尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。 ~~~JSP~~~ <input type="hidden" name="str1" value="a"/> <input type="hidden" name="str2" value="b"/> <input type="hidden" name="str3" value="c"/> ~~~~~~~~ 上のJSPから下記のFORMに詰めたい ~~~form~~~ private List strList; public List getStrList(){ return strList; } ~~~~~~~~ 又、こちらで調べたところ下記のようにすればいけるようですが欲しい値は一つのためBeanを使用しなくても実現可能ではないかと思い、質問させていただきました。 よろしくお願い致します。 ~~~JSP~~~ <input type="hidden" name="testArray[0].str" value="a"/> <input type="hidden" name="testArray[1].str" value="b"/> <input type="hidden" name="testArray[2].str" value="c"/> ~~~~~~~ ~~~FORM~~~ private List list; public TestBean getTestA(int iIndex) { while (this.list.size() <= iIndex) { this.list.add(new TestBean ()); } return ( TestBean ) this.list.get(iIndex); } public Object[] getTestArray() { return list.toArray(); } public static class TestBean { private String str = ""; public String getStr() { return str; } public void setStr(String str) { this.str = str; } }

    • ベストアンサー
    • Java
  • [C#]Arraylistに追加した構造体の内容の変更

    struct Hoge {     public string name;     public string address; } ArrayList list = new ArrayList(); Hoge test = new Hoge(); test.name = "あいうえお"; test.address = "123"; list.Add(test); test.name = "かきくけこ"; test.address = "456"; list.Add(test); //ここから //list[0].name = "さしすせそ"; のように追加するコードを書きたいです //ここに for (int i = 0; i < List.Count; i++) {     MessageBox.Show((Hoge)List[i]).name.ToString()); } これで、 list[0]のnameには"あいうえお" list[1]のnameには"かきくけこ" が、代入されていますが list[0]のnameをArrayListに追加したあとに変更したいのです。 このままだと、「あいうえお」「かきくけこ」と表示されますが、 「さしすせそ」を途中でlist[0]の代入して、 「さしすせそ」「かきくけこ」と表示したいのです。

  • 配列のタイプ変換方法について

    obj[] から List<string> へのコピー(変換)って ループ回すしかないのでしょうか? DataTabe dt があります。この中身は文字列なので for (int irow = 0; irow < dt.Count; irow++) {  List<string> slst = new List<string>();  for (int icol = 0; icol < dt.Columns.Count; icol) {   slst.add(dt[irow][icol].ToString());  }  Process(slst); } たとえば for (int irow = 0; irow < dt.Count; irow++) {  Process((List<string>)(dt[irow].ItemArray)); } みたいなことできませんか?

  • 2つのリストのマージ方法について

    2つのリストのマージ方法について 下記の要件を満たしたいと考えています。 ・リスト1・2をkeyをキーにマージしたい。  リスト1[0]:key=2, value1=b  リスト1[1]:key=3, value1=d  リスト1[2]:key=4, value1=e  ・  ・  ・  リスト2[0]:key=1, value2=A  リスト2[1]:key=2, value2=B  リスト2[2]:key=5, value2=F  リスト2[3]:key=6, value2=G  ・  ・  ・  ↓  リスト3[0]:key=1, value1=A, value=""  リスト3[1]:key=2, value1=b, value=B  リスト3[2]:key=3, value1=d, value=""  リスト3[3]:key=4, value1=e, value=""  リスト3[4]:key=5, value1="", value=F  リスト3[5]:key=6, value1="", value=G  ・  ・  ・ ・リスト1・2はkeyの昇順でソート済。各リスト内では重複しているkeyはない。 ・マージ後もkeyの昇順にしたい。 ・実際のリストはそれぞれ数万件~数十万件なので、パフォーマンスを考慮したい。 下記のように作成してみたのですが、無理やりやりました感があり、分かりづらくバグがありそうです。またループでnewもしてたりしてパフォーマンスも悪そうです。もっとスマートにパフォーマンスもよい方法がないでしょうか? int checkedCount = 0; for (int i = 0; i < list1.size(); i++) { String str1 = list1.get(i).get("key"); for (int j = checkedCount; j < list2.size(); j++) { Map<String, String> map3 = new HashMap<String, String>(); String str2 = list2.get(j).get("key"); if (str1.compareTo(str2) < 0) { if (i != list1.size() - 1) { map3.put("key", str1); map3.put("value1", list1.get(i).get("value1")); map3.put("value2", ""); list3.add(map3); break; } else { Map<String, String> map4 = new HashMap<String, String>(); map4.put("key", str2); map4.put("value1", ""); map4.put("value2", list2.get(j).get("value2")); list3.add(map4); } } else if (str1.compareTo(str2) == 0) { map3.put("key", str1); map3.put("value1", list1.get(i).get("value1")); map3.put("value2", list2.get(j).get("value2")); list3.add(map3); checkedCount = j + 1; break; } else { map3.put("key", str2); map3.put("value1", ""); map3.put("value2", list2.get(j).get("value2")); list3.add(map3); checkedCount = j + 1; } } }

    • ベストアンサー
    • Java
  • リストボックスに関連してファイルの行削除

    VisualC++ 6.0でMFCを利用しています. あるテキストファイルの中身が表示されているリストボックスがあります. そのリストボックスのある行をダブルクリックすると, 対応した行のテキストファイル,リストボックス両方の行が削除されるプログラムを組んでいます. リストボックスの行は削除できるのですが,テキストファイルのほうは削除する手段がわかりません. void CModel03Dlg::OnDblclkMyList02() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください CModel03Dlg::List_Selected(fp); int label_number; label_number = m_sList02.GetCurSel(); char input[256], string[256]; m_sList02.GetText(label_number, input); while(fgets(string, 256, fp) != NULL){ if(input==string){ //string = "\0"; //この辺りがわからない MessageBox(input); // Boxが表示されないのでif文の評価がfalseだと } } m_sList02.DeleteString(label_number); } どうすればテキストファイルの内容を削除できるのでしょうか?教えてください.

  • C#で配列のフィールドを取得したい

    C#2.0を試用しています。 次のような書き方ではプリミティブ型は取得できるのですが、 配列のフィールドは取得できないので、 なんとかして取得する方法はないのでしょうか? public class MasterClass {  public int a = 2;  public int[] b = new int[] { 1, 2 };//←取得できない } Object obj = new TestClass(); Type type = obj.GetType(); foreach (FieldInfo fi in type.GetFields()) {  object tmp = fi.GetValue(obj);  Console.WriteLine(fi.Name + ":" + tmp); } System.Console.ReadLine();

  • 実引数リストと仮引数リストの長さが異なります

    実引数と仮引数はあっているはずですが、次のエラーが出ます。どうしてでしょうか? ------エラー----------------------- java: クラス Itemのコンストラクタ Itemは指定された型に適用できません。 期待値: 引数がありません 検出値: java.lang.String,int,java.util.Date 理由: 実引数リストと仮引数リストの長さが異なります -------------------------------------------------- public class Main { public static void main(String[] args) { String name= "test"; int price = 0; Date date = new Date(); Item item = new Item(name,price,date);//コンストラクタ実引数 } } class Item{ String name; int price; Date date; void Item(String name, int price, Date date)//コンストラクタ仮引数 { this.name = name; this.price = price; this.date = date; } }

    • ベストアンサー
    • Java

専門家に質問してみよう