通过从另一个数组转换来初始化数组

时间:2018-01-30 21:53:46

标签: c# arrays delegates

有没有办法从不同类型的数组初始化一个类型的数组,在那里我可以提供一个委托/谓词来转换每个元素?

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));

1 个答案:

答案 0 :(得分:1)

您可以使用Select扩展程序方法从string投射到Foo,如下所示:

Foo[] foos = strs.Select(x => new Foo(x)).ToArray();