8

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?

user279521
  • 4,779
  • 21
  • 78
  • 109

4 Answers4

10

Try this:

arrTeamMembers = tb.Text.Split('|');
Andrew Hare
  • 344,730
  • 71
  • 640
  • 635
9

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);
Foole
  • 4,754
  • 1
  • 26
  • 23
8

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;
David Morton
  • 16,338
  • 3
  • 63
  • 73
1

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;
JDMX
  • 1,489
  • 9
  • 22
  • I am trying to pass the values from tb.Text to arrTeamMembers. I am not trying to split the text. – user279521 Feb 25 '10 at 22:14
  • so you want? string [] arrTeamMembers = new string[1]; arrTeamMembers[0] = tb.Text; – JDMX Feb 25 '10 at 22:20
  • or you want something like this: string [] arrTeamMembers = {tb.Text}; which is the same as jdmx's (i.e. create an array of one element). – Sameh Deabes Feb 25 '10 at 22:35