private IEnumerable<Block> ContinousBuild(IEnumerable<Word> words, WordRenderer renderer, Graphics g) => from word in words let sz = renderer.CalculateSize(word, g) let region = new RectangleF(g.VisibleClipBounds.Location, g.VisibleClipBounds.Size - sz) select new Block(_r.RandomPoint(region), sz) {Data = word};
private static IEnumerable<Block> BuildBlocks(IEnumerable<Word> words, WordRenderer renderer, Graphics g) { // ReSharper disable once LoopCanBeConvertedToQuery foreach (var word in words) { var sz = renderer.CalculateSize(word, g); if (sz.Width > g.VisibleClipBounds.Width || sz.Height > g.VisibleClipBounds.Height) continue; yield return new Block(new PointF(-sz.Width, -sz.Height), sz) { Data = word }; } }