Console.WriteLine和通用List

Jus*_* R. 36 c# generics console list

我经常发现自己编写这样的代码:

List<int> list = new List<int> { 1, 3, 5 };
foreach (int i in list) {
    Console.Write("{0}\t", i.ToString()); }
Console.WriteLine();
Run Code Online (Sandbox Code Playgroud)

更好的是这样的:

List<int> list = new List<int> { 1, 3, 5 };
Console.WriteLine("{0}\t", list);
Run Code Online (Sandbox Code Playgroud)

我怀疑有一些聪明的方法,但我没有看到它.有人比第一块有更好的解决方案吗?

Jas*_*ing 74

做这个:

list.ForEach(i => Console.Write("{0}\t", i));
Run Code Online (Sandbox Code Playgroud)

编辑:对于已经回复的其他人 - 他希望他们都在同一条线上,并在它们之间有标签.:)


Vin*_*vic 23

一种不同的方法,仅适用于踢球:

Console.WriteLine(string.Join("\t", list));
Run Code Online (Sandbox Code Playgroud)

  • 使用List <int>对我不起作用.我得到了InvalidCastException. (2认同)
  • 您无需将列表转换为字符串并转换为数组。string.Join将接受一个列表,因为有一个重载,它需要一个IEnumerable &lt;T&gt; .parameter,如&lt;T&gt;的IEnumerable(List)一样(在这种情况下,T = int),因此List会在int.ToString( )将在Join()方法中调用。Console.WriteLine(string.Join(“ \ t”,list)); https://docs.microsoft.com/zh-cn/dotnet/api/system.string.join?view=netframework-4.8 (2认同)

小智 5

new List<int> { 1, 3, 5 }.ForEach(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)