user279521
user279521

Reputation: 4807

Error message: Cannot convert type 'string' to 'string[]'

I am creating a dynamic array, and getting an error:

Error message: Cannot convert type 'string' to 'string[]'

The code is:

arrTeamMembers += tb.Text;

tb.Text contains values such as "Michael | Steve | Thomas | Jeff | Susan | Helen |"

I am trying to pass the values from tb.Text to arrTeamMembers. I am NOT trying to split the text. How can I resolve this error?

Upvotes: 8

Views: 76312

Answers (4)

Foole
Foole

Reputation: 4850

You can't just add strings to an array of strings.

Depending on what you are actually trying to do, you might want this:

string[] arrTeamMembers = new string[] { tb.Text };

or

arrTeamMembers[0] = tb.Text;

You probably want to use a List instead.

List<string> stringlist = new List<string>();
stringlist.Add(tb.Text);

Upvotes: 12

JDMX
JDMX

Reputation: 1509

If you are trying to split the text in the textbox then

arrTeamMembers = tb.Text.Split( '|' );

If this does not work, are you trying to append the textbox to the end of the array?

if ( arrTeamMembers == null )
  arrTeamMembers  = new string[0];

string[] temp = new string[arrTeamMembers.Length + 1];
Array.Copy( temp , 0, arrTeamMembers, 0, arrTeamMembers.Length );
temp[temp.Length - 1] = tb.Text;
arrTeamMembers = temp;

Upvotes: 1

David Morton
David Morton

Reputation: 16505

The problem is, arrTeamMembers is an array of strings, while tb.Text is simply a string. You need to assign tb.Text to an index in the array. To do this, use the indexer property, which looks like a number in square brackets immediately following the name of the array variable. The number in the brackets is the 0-based index in the array where you want to set the value.

arrTeamMembers[0] += tb.Text;

Upvotes: 8

Andrew Hare
Andrew Hare

Reputation: 351526

Try this:

arrTeamMembers = tb.Text.Split('|');

Upvotes: 10

Related Questions