这是我正在努力的事情的延伸。 在循环中这很容易,但我想知道我是否能找到单代码行。
这是输入:
byte[] x = new byte[] { (byte)'a', (byte)'b', (byte)'c', (byte)'d' };
无论如何重写你想要的值,但你明白了。你必须从一个字节数组开始,最后得到一个整理的字节数组。
这是所需的输出:
byte[] { (byte)'a', (byte)'z', (byte)'b', (byte)'z', (byte)'c', (byte)'z', (byte)'d', (byte)'z'};
我尝试了各种变体,但从我展示的内容开始,并且知道这本身不起作用。
var y = x.Select(c => new byte[] { c, (byte)'z' });
在一天结束时,由于这些只是字节,因此值并不重要。 只是你可以关联一些给定的值,' z'在这种情况下。 在少数几行中,首选一行,相当简洁明了。
答案 0 :(得分:4)
你几乎就在那里 - 你只需要使用SelectMany
代替Select
,就像你创建一系列输出元素的每个输入元素一样......那么你想要压扁了#34;序列序列"成一个序列。这正是SelectMany
的作用。
所以:
var y = x.SelectMany(c => new[] { c, (byte)'z' }).ToArray();