Search code examples
c#arrayscrystal-reports

How to set value by call variable name from string c#


Now I'm new for c# development.

I have 100 data from Array and also have 100 variables.

How can I match 100 data with 100 variables?

for example

for(int count = 0 ; count < array.lenght ; count++)
{
    Var+count = array[count];
}

Something like this.

or you guy have another solution please help me. I don't want to do like

set Var1 to Var100 by hand.

More Information Actually I need to add the arrays values to text object in CrystalReport

For example if I want to add the value

 TextObject txtLot1 = (TextObject)report.ReportDefinition.Sections["Section4"].ReportObjects["txtLot1"];

 txtLot1.Text = Arrays[i]

something like this. so , I try to use dictionary but I don't think it will work.


Solution

  • Here is an example of doing what you are asking for on the fly with a System.Collections.Generic.Dictionary, all keys in a dictionary must be unique, but since you are appending 1 to each key in your loop this will suffice:

    Dictionary<string, int> myKeyValues = new Dictionary<string, int>();
    
    for(int count = 0 ; count < array.length; count++)
    {
        //Check to make sure our dictionary does not have key and if it doesn't add key
        if(!myKeyValues.ContainsKey("someKeyName" + count.ToString())
        {
             myKeyValues.Add("someKeyName" + count.ToString(), count);
        }
        else
        {
            //If we already have this key, overwrite, shouldn't happen as you are appending a new int value to key each iteration
            myKeyValues["someKeyName" + count.ToString()] = count;
        }
    }