我想从其他元素列表中填充我的类型数组。所有这些我想在 foreach 循环中完成。
是否可以?
现在是如何做到的:
// 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();
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的:
Parameter[] parametersToInput = new Parameter[parametersWindow.Parameters.Count]
foreach (var param in parametersWindow.Parameters)
{
// parametersToInput.add(new Parameter(parameter))
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我吗?
数组没有Add方法,因为它无法调整大小。因此,要么也使用列表中的 a List、 use LINQ,ToArray要么正确调整数组大小并使用 -loop for。
linq 方法是:
Parameter[] parametersToInput = parametersWindow.Parameters.ToArray();
Run Code Online (Sandbox Code Playgroud)
列表:
List<Parameter> parametersToInput = parametersWindow.Parameters.ToList();
Run Code Online (Sandbox Code Playgroud)
或者
List<Parameter> parametersToInpu = new List<Parameter>(parametersWindow.Parameters);
Run Code Online (Sandbox Code Playgroud)
数组循环方法:
Parameter[] parametersToInput = new Parameter[parametersWindow.Parameters.Count];
for (int i = 0; i < parametersWindow.Parameters.Count; i++)
parametersToInput[i] = parametersWindow.Parameters[i];
Run Code Online (Sandbox Code Playgroud)
更新自parametersWindow.Parameters不是Parameter您需要创建的:
Parameter[] parametersToInput = parametersWindow.Parameters
.Select(p => new Parameter { Name = p.Name, Value = p.Value})
.ToArray();
Run Code Online (Sandbox Code Playgroud)