2016-10-12 4 views
-6

オブジェクトの配列を持っていますが、その含有物をコンソールにどのように印刷できますか?コンソールにオブジェクトの配列を出力します

プロパティとその値を印刷する必要があります。

object[] attrs; 
attrs = prop.GetCustomAttributes(true); 

私はリフレクションを使用する必要がありますが、使用方法はわかりません。

+0

これまでのところ、あなたの研究は何を明らかにしましたか?なぜあなたの質問に答えるのが助けになれないのですか? –

+0

'foreach(attrsのvarアイテム).......' –

+0

私はあなたが私のポイントを得ていないと思う、私はプロパティ名とその値を印刷する必要がある –

答えて

0

あなたはリフレクションを使用する必要があります。ここにサンプルがあります:

static void Main(string[] args) 
    { 
     string obj1 = "a string"; 
     int obj2 = 12; 
     DateTime obj3 = DateTime.Today; 

     object[] obj_array = { obj1, obj2, obj3 }; 

     foreach (object obj in obj_array) 
     { 
      //Print value 
      Console.WriteLine("Value: " + obj.ToString()); 

      //Print property names 
      Console.WriteLine("Property Names:"); 
      foreach (PropertyInfo prop in obj.GetType().GetProperties()) 
      { 
       Console.WriteLine(prop.Name); 
      } 
      Console.WriteLine(); 
     } 
     Console.Read(); 
    } 

EDIT:申し訳ありません、おそらくオブジェクト自体のプロパティ値を取得したかったのです。その場合、別のサンプルがあります:

class Program 
{ 
    static void Main(string[] args) 
    { 
     MyObject myobj = new MyObject("prop1", "prop2"); 
     object[] obj_array = { myobj }; 

     foreach (object obj in obj_array) 
     { 
      foreach (PropertyInfo property in obj.GetType().GetProperties()) 
      { 
       Console.WriteLine("Property Name: " + property.Name); 
       Console.WriteLine("Property Value: " + property.GetValue(obj)); 
      } 
     } 
     Console.Read(); 
    } 
} 
public class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
    public MyObject(string p1, string p2) 
    { 
     Property1 = p1; 
     Property2 = p2; 
    } 
} 
0

あなたは試みることができる:Console.WriteLine(string.Join(",", attrs));

+0

の後に何をしているのか、魔法使いにはプロパティとその値が含まれています。 –

関連する問題