gpt4 book ai didi

c# - 泛化构造函数以在 C# 中对数组进行操作

转载 作者:行者123 更新时间:2023-11-30 14:15:17 26 4
gpt4 key购买 nike

我想知道如何对数组的每个元素应用一个构造函数,然后返回一个构造对象数组。具体来说,我正在使用 C# 的 TreeNode。我想要的概念如下:

string[] animals = {"dog","cat","mouse"};
TreeNode[] animalNodes = TreeNode[](animals);

TreeNode[](animals) 的累积效应为

animalNodes[0] = TreeNode("dog");
animalNodes[1] = TreeNode("cat");
animalNodes[2] = TreeNode("mouse");

我知道我可以使用 foreach 并手动加载这样的结构,但如果可能的话,我正在寻找优雅的“一行”方式。我一直在努力寻找如何做到这一点,但找不到任何东西。

最佳答案

一些 LINQ 可以解决这个问题:

TreeNode[] animalNodes = animals.Select(a => new TreeNode(a)).ToArray();

Select 扩展方法在列表的每个成员上执行指定的委托(delegate)(在此处通过 lambda 指定),并创建结果列表(在本例中为 IEnumerable<TreeNode>)。 ToArray 然后使用扩展方法根据结果创建一个数组。

或者,您可以使用 LINQ 的查询语法:

TreeNode[] animalNodes = (from a in animals select new TreeNode(a)).ToArray();

对于这两个示例,编译器生成的代码是相同的。

关于c# - 泛化构造函数以在 C# 中对数组进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com