2014-05-23 4 views
11

Мне нужно сбросить содержимое массивов или объектов, и мне интересно узнать, есть ли в C# у нас что-то вроде инструкции PHP var_dump.PHP var_dump в C# для дампа массива или объектов?

Цель состоит в том, чтобы не создавать цикл для использования каждого свойства или содержимого массива или объекта и печатать с помощью Console.WriteLine.

+0

0 Вы не хотите использовать встроенные инструменты для осмотра в визуальной студии? как быстродействующий? – scheien

ответ

11

самое близкое, вероятно, будет string.Join :

Console.WriteLine(string.Join(", ", myEnumOfObjects)); 

Он не будет автоматически включать «каждое свойство или содержимое массива или объекта» в выводе, хотя - если вы хотите, чтобы это произошло, необходимо переопределить ToString метод объекта напечатал:

class MyObject { 
    public string Name {get;set;} 
    public DateTime Dob {get;set;} 
    public string ToString() { 
     return string.Format("{0} - {1}", Name, Dob); 
    } 
} 
3

Когда вы вставляете точку прерывания, вы можете легко просмотреть содержимое массива, наведя курсор мыши на него.

или любой из них:

Вы, вероятно, с помощью Console.WriteLine для печати массива.

int[] array = new int[] { 1, 2, 3 }; 
foreach(var item in array) 
{ 
    Console.WriteLine(item.ToString()); 
} 

Если вы не хотите, чтобы каждый элемент на отдельном использовании линии Console.Write:

int[] array = new int[] { 1, 2, 3 }; 
foreach(var item in array) 
{ 
    Console.Write(item.ToString()); 
} 

или string.join (в .NET Framework 4 или более поздней версии):

int[] array = new int[] { 1, 2, 3 }; 
Console.WriteLine(string.Join(",", array)); 

от этого вопроса: How to print contents of array horizontally?

+0

Идея состоит в том, чтобы не использовать циклы только одной инструкции и напрямую печатать ее на консоли – David

+0

@David Посмотрите на последнюю. –

+0

Я не видел этого, моя идея мне нужно увидеть Ключи и значения, вставленные внутри СЕССИИ – David

2

Я думаю, что нет прямого эквивалента функции var_dump php.

Вы должны использовать отражение для записи эквивалентной функции.

Если вы ищете в Интернете, вы можете легко найти код, который это сделает.

Например: http://ruuddottech.blogspot.fr/2009/07/php-vardump-method-for-c.html

2

Я знаю, вы хотите, чтобы избежать петли, но если его просто ради написания нескольких строк кода, ниже петля один лайнер, который может позволить вам печатать данные с одной строкой для объектов Продолжить Метод ForEach

List<string> strings=new List<string>{"a","b","c"};//declare one 

strings.ForEach(x => Console.WriteLine(x));//single line loop...for printing and is easier to write 
Смежные вопросы