public void CopyTo() { SimpleList <string> strings = new SimpleList <string>(3); strings.Add("Hello "); strings.Add("world!"); string[] stringsArr = new string[2]; strings.CopyTo(stringsArr, 0); Assert.AreEqual("Hello ", stringsArr[0]); Assert.AreEqual("world!", stringsArr[1]); Assert.AreEqual(2, strings.Count); Assert.AreEqual(2, stringsArr.Length); Assert.ThrowsException <ArgumentNullException>(() => { strings.CopyTo(null, 0); }); Assert.ThrowsException <ArgumentException>(() => { stringsArr = new string[0]; strings.CopyTo(stringsArr, 0); }); }
/// <summary> /// <paramref name="n"/> の約数を返します。 /// </summary> public static long[] Divisor(long n) { if (n == 1) { return new long[] { 1 } } ; var left = new SimpleList <long>(); var right = new SimpleList <long>(); left.Add(1); right.Add(n); for (long i = 2, d = Math.DivRem(n, i, out long amari); i <= d; i++, d = Math.DivRem(n, i, out amari)) { if (amari == 0) { left.Add(i); if (i != d) { right.Add(d); } } } right.Reverse(); var res = new long[left.Count + right.Count]; left.CopyTo(res, 0); right.CopyTo(res, left.Count); return(res); }