打印阵列和任何类型列表的常用方法

sha*_*sha 12 c# generics debugging

每当我调试一段涉及数组或int,double,string等列表的代码时,我更喜欢有时打印它们.我为此做的是为不同类型编写重载的printArray/printList方法.

例如

我可以使用这3种方法来打印各种类型的数组

public void printArray(int[] a);

public void printArray(float[] b);

public void printArray(String[] s);
Run Code Online (Sandbox Code Playgroud)

虽然这对我有用,但我仍然想知道是否可以使用通用方法打印任何类型的数组/列表.这也可以扩展到对象的数组/列表.

Kir*_*ill 43

有用的String.Join<T>(string separator, IEnumerable<T> values)方法.您可以传递数组或列表或任何对象的任何可枚举集合,因为对象将通过调用转换为字符串.ToString().

int[] iarr = new int[] {1, 2, 3};
Console.WriteLine(String.Join("; ", iarr));  // "1; 2; 3"
string[] sarr = new string[] {"first", "second", "third"};
Console.WriteLine(String.Join("\n", sarr));  // "first\nsecond\nthird"
Run Code Online (Sandbox Code Playgroud)


M.B*_*ock 6

数组和通用列表都是实现的,IEnumerable<T>所以只需将它用作参数类型即可.

public void PrintCollection<T>(IEnumerable<T> col)
{
    foreach(var item in col)
        Console.WriteLine(item); // Replace this with your version of printing
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

43736 次

最近记录:

10 年,7 月 前