Variables in a loop

前端 未结 9 1498
眼角桃花
眼角桃花 2020-12-19 18:32

I was wondering whether there\'s a way in a \"for\" loop to assign a value to a string variable named according to its index number?

let\'s say I have 3 string varia

相关标签:
9条回答
  • 2020-12-19 19:12

    If you declare your variable in a class as public variables, you can access them as follow;

    public partial class _Default : System.Web.UI.Page
    {
        public string message1 = null;
        public string message2 = null; 
        public string message3 = null;
    
    
        public void setVars()
        {
            for (int i = 1; i <=3; i++)
             {
                 this.GetType().GetField("message" + i.ToString()).SetValue(this, "blabla" + i.ToString());
    
             }
        }
    
    
    
    
    }
    
    0 讨论(0)
  • 2020-12-19 19:13

    I would go about it a little differently, maybe use a dictionary and store your messages. Something like this:

     Dictionary<string, string> messages = new Dictionary<string, string>();
     for(int i = 1; i <= 3; i++)
     {
          messages.Add("message" + i.ToString(), i.ToString());
     }
    
    0 讨论(0)
  • 2020-12-19 19:19

    You don't want 3 variables with the same name, you want an array of those variables.

    string[] messages = new string[3]; // 3 item array
    

    You can then store your items in the array elements

    messages[0] = "Apple"; // array index starts at 0!
    messages[1] = "Banana";
    messages[2] = "Cherry"; 
    

    Another way to create that array is an inline array initializer, saves some code

    string[] messages = { "Apple", "Banana", "Cherry" }; 
    

    (Note: there are more valid syntaxes for array initialization. Research on the various other methods is left as an exercise.)

    And access them via a loop (foreach)

    foreach (string fruit in messages)
    {
        Console.WriteLine("I'm eating a " + fruit);
    }
    

    Or for

    for (int i = 0; i < messages.Length; i++)
    {
        Console.WriteLine("I'm eating a " + messages[i]); // reading the value
        messages[i] = "blabla" + i.ToString(); // writing a value to the array
    }
    
    0 讨论(0)
提交回复
热议问题