有没有办法从不同类型的数组初始化一个类型的数组,在那里我可以提供一个委托/谓词来转换每个元素?
class foo
{
public foo(string s);
}
string[] strs = {"abc", "def", "ghi"};
foo[] foos = {an array of new foos, created with each of my strs};
显然,我可以做一个for
循环,但考虑到C#可以做的其他事情,必须有一个单行。也许是这样的:
foo[] foos = strs.ToArray<foo>(s => new foo(s));
答案 0 :(得分:1)
您可以使用Select
扩展程序方法从string
投射到Foo
,如下所示:
Foo[] foos = strs.Select(x => new Foo(x)).ToArray();