How to filter an array so the result is an array again?
The standard library std.algorithm is based on Range. So if a = [1, 2, 3, 4]; auto r = filter!(a 2)(a); Here, r is a range. How about I want an new array? Is there any easy way to convert the result to array? If we have to do like: int[] b; for (v; r) { b ~= v; } Then maybe it is easier to not use filter at all as: int [] b; for (v; a) { if (v 2) b ~= v; } Thanks a lot.
Re: How to filter an array so the result is an array again?
Sorry, the 'for' should be 'foreach'.
Re: How to filter an array so the result is an array again?
On Friday, September 16, 2011 04:04:39 Cheng Wei wrote: The standard library std.algorithm is based on Range. So if a = [1, 2, 3, 4]; auto r = filter!(a 2)(a); Here, r is a range. How about I want an new array? Is there any easy way to convert the result to array? If we have to do like: int[] b; for (v; r) { b ~= v; } Then maybe it is easier to not use filter at all as: int [] b; for (v; a) { if (v 2) b ~= v; } Use std.array.array. auto a = [1, 2, 3, 4]; auto r = array(filter!a 2(a)); - Jonathan M Davis