28

How do I print a list of string arrays? I can do it from string[] using Console.WriteLine, but if I do that for a list with foreach it just prints out System.String[]. How do I write an index when using a foreach?

2
  • 1
    Use the index and print it Commented Feb 8, 2017 at 11:38
  • 3
    if you want to print array values, you cannot just pass array to Console.WriteLine you should either print each item of array separately or convert array to string and then print that string. E.g. with String.Join(",", yourArray) Commented Feb 8, 2017 at 11:40

5 Answers 5

57

The simplest way to achieve this is: using String.Join

string[] arr = new string[] { "one", "two", "three", "four" };
Console.WriteLine(String.Join("\n", arr)); 

Hope this helps.

Sign up to request clarification or add additional context in comments.

Comments

10

This works for me:

var strArray = new string[] {"abc","def","asd" };
strArray.ToList().ForEach(Console.WriteLine);

Comments

8

So you have list of string arrays, like this:

 List<string[]> data = new List<string[]>() {
   new string[] {"A", "B", "C"},
   new string[] {"1", "2"},
   new string[] {"x", "yyyy", "zzz", "final"},
 };

To print on, say, the Console, you can implement nested loops:

 foreach (var array in data) {
   Console.WriteLine();

   foreach (var item in array) {
     Console.Write(" ");
     Console.Write(item); 
   }
 }

Or Join the items into the single string and then print it:

 using System.Linq;
 ...

 string report = string.Join(Environment.NewLine, data
   .Select(array => string.Join(" ", array)));

 Console.Write(report);

Or combine both methods:

 foreach (var array in data) 
   Console.WriteLine(string.Join(" ", array));

Comments

3
string[] arr = new string[2]{"foo","zoo"}; // sample Initialize.

// Loop over strings.
foreach (string s in arr)
{
    Console.WriteLine(s);
}

The console output:

foo
zoo

Comments

-1

In a string array to get the index you do it:

string[] names = new string[3] { "Matt", "Joanne", "Robert" };

int counter = 0;
foreach(var name in names.ToList())
{
 Console.WriteLine(counter.ToString() + ":-" + name);
 counter++;
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.