Doing List.ToArray three times a frame should be alright, assuming they're not nested calls or something crazy. I like the implementation you've done with the slices, looking forward to seeing how it works out.