i want to fill array of my types from list of other element. All of this I want to do in a foreach loop.
Is it possible?
How it is done now:
// Temp list
List<Parameter> inputData = new List<Parameter>();
// going through collection from which i want to copy
foreach (var parameter in parametersWindow.Parameters)
{
inputData.Add(new Parameter() { Name = parameter.Name, Value = parameter.Value });
}
// Convertation to array.
Parameter[] parametersToInput = inputData.ToArray();
And this is how I want to do it:
Parameter[] parametersToInput = new Parameter[parametersWindow.Parameters.Count]
foreach (var param in parametersWindow.Parameters)
{
// parametersToInput.add(new Parameter(parameter))
}
Could anyone help me?
An array has no Add method since it cannot be resized. So either also use a List, use LINQ's ToArray from your list or correctly size the array and use a for-loop.
The linq approach is:
Parameter[] parametersToInput = parametersWindow.Parameters.ToArray();
The list:
List<Parameter> parametersToInput = parametersWindow.Parameters.ToList();
or
List<Parameter> parametersToInpu = new List<Parameter>(parametersWindow.Parameters);
The array-for-loop approach:
Parameter[] parametersToInput = new Parameter[parametersWindow.Parameters.Count];
for (int i = 0; i < parametersWindow.Parameters.Count; i++)
parametersToInput[i] = parametersWindow.Parameters[i];
Update Since parametersWindow.Parameters is not a Parameter you ned to create one:
Parameter[] parametersToInput = parametersWindow.Parameters
.Select(p => new Parameter { Name = p.Name, Value = p.Value})
.ToArray();
If you really wan't to do a Foreach loop, you could try this:
//Your List
List<Parameter> inputData = new List<Parameter>();
//Fill Your List Here
//Your Array
Parameter[] parametersToInput = new Parameter[inputData.Count];
//Filling Your Array from Your List
int index = 0;
inputData.ForEach(e => parametersToInput[index++] = e);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With