decode `IEnumerable` to string made of 1 byte characters (eg., ASCII) I'm looking for a more elegant (eg., with less many functions, eg., &quot;copy into contiguous array then reinterpret&quot;) or more efficient way (with less complexity) to transcode a IEnumerable&lt;uint&gt; (~ array of 32bits int), which is a compact way to represent a byte[4] array, into a string as array of 8bits char:
public static string UintArraytoString(this IEnumerable&lt;uint&gt; x) =&gt;
    string.Concat(x.Select(o =&gt;
        new string(BitConverter.GetBytes(o).Select(Convert.ToChar).ToArray())));

I'm using .net 5.0. I'm open to use unsafe methods too. I think that one may do something like a reinterpretcast, but the IEnumerable is not necessarily contiguous.
Well, I could propose few improvements for you:

Try to use SelectMany instead of just Select;
No need to call ToArray since the string.Concat could consume IEnumerable;

public static string UintArrayToString(this IEnumerable&lt;uint&gt; x) =&gt;
    string.Concat(x.SelectMany(BitConverter.GetBytes).Select(Convert.ToChar));