protected FreeList <T> FindAllList(Predicate <T> match) { FreeList <T> results = new FreeList <T>(); for (int i = 0; i < this._size; i++) { if (match(_items[i])) { results.Add(_items[i]); } } return(results); }
public void ExpandAndShrink() { var freeList = new FreeList <string>(); freeList.GetValues().Length.Should().Be(4); var a = freeList.Add("a"); var b = freeList.Add("b"); var c = freeList.Add("c"); var d = freeList.Add("d"); freeList.GetValues().Length.Should().Be(4); var e = freeList.Add("e"); var f = freeList.Add("f"); var g = freeList.Add("g"); var h = freeList.Add("h"); freeList.GetValues().Length.Should().Be(8); foreach (var subscription in new[] { a, b, c, d, e, f, g, h }) { freeList.Remove(subscription, true); } freeList.GetCount().Should().Be(0); freeList.GetValues().Length.Should().Be(8); var subscriptions = Enumerable.Range(100, 9).Select(x => freeList.Add(x.ToString())).ToArray(); freeList.GetCount().Should().Be(9); freeList.GetValues().Length.Should().Be(16); foreach (var subscription in subscriptions) { freeList.Remove(subscription, true); } freeList.GetCount().Should().Be(0); freeList.GetValues().Length.Should().Be(4); }
public void AddRemoveTrim() { var list = new FreeList <string>(); var a = list.Add("a"); var b = list.Add("b"); var c = list.Add("c"); var d = list.Add("d"); var e = list.Add("e"); list.GetCount().Should().Be(5); var items = list.GetValues(); items.Count().Should().Be(8); items.Where(x => x != null).Should().BeEquivalentTo("a", "b", "c", "d", "e"); list.Remove(c, true); list.Remove(e, true); list.GetCount().Should().Be(3); list.GetValues().Where(x => x != null).Should().BeEquivalentTo("a", "b", "d"); foreach (var i in Enumerable.Range(0, 30)) { list.Add(i.ToString()); // 30 } list.Remove(a, true); list.Remove(b, true); list.Remove(d, true); list.Add("30"); list.GetValues().Where(x => x != null).Should().BeEquivalentTo(Enumerable.Range(0, 31).Select(x => x.ToString())); }
public void WriteToBuffers(FreeList <Vector3> v, FreeList <Vector2> u, FreeList <Color> c, FreeList <Vector3> n, FreeList <Vector4> t, FreeList <Vector2> u2) #endif { if (mRtpVerts != null && mRtpVerts.Count > 0) { if (n == null) { #if NGUI_BACKUP for (int i = 0, imax = mRtpVerts.Count; i < imax; ++i) { v.Add(mRtpVerts[i]); u.Add(uvs[i]); c.Add(cols[i]); } #else v.AddRange(mRtpVerts); u.AddRange(uvs); c.AddRange(cols); #endif } else { #if NGUI_BACKUP for (int i = 0, imax = mRtpVerts.Count; i < imax; ++i) { v.Add(mRtpVerts[i]); u.Add(uvs[i]); c.Add(cols[i]); n.Add(mRtpNormal); t.Add(mRtpTan); } #else v.AddRange(mRtpVerts); u.AddRange(uvs); c.AddRange(cols); for (int i = 0, imax = mRtpVerts.Count; i < imax; ++i) { n.Add(mRtpNormal); t.Add(mRtpTan); } #endif } if (u2 != null) { #if NGUI_BACKUP Vector4 uv2 = Vector4.zero; #else Vector2 uv2 = Vector2.zero; #endif for (int i = 0, imax = verts.Count; i < imax; ++i) { uv2.x = verts[i].x; uv2.y = verts[i].y; u2.Add(uv2); } } if (onCustomWrite != null) { onCustomWrite(v, u, c, n, t, u2); } } }