public SqlRangeRegularArray(int[] lengths) { if (lengths != null && lengths.Any(l => l < 0)) { throw new ArgumentException("One or many items have invalid values.", "lengths"); } _array = PwrArray.CreateAsRegular <Range?>(lengths); _arrayInfo = new RegularArrayInfo(lengths); }
public SqlStringRegularArray(int[] lengths, Encoding encoding) { if (lengths != null && lengths.Any(t => t < 0)) { throw new ArgumentException("One or many items have invalid values.", "lengths"); } _array = PwrArray.CreateAsRegular <String>(lengths); _arrayInfo = new RegularArrayInfo(lengths); _encoding = encoding; }
public static Array ReadRegularArray <T>(this BinaryReader reader, Func <BinaryReader, int, int[], T> itemReader, int[] indices, int[] lengths, int[] lowerBounds = null) { if (reader == null) { throw new ArgumentNullException("reader"); } if (itemReader == null) { throw new ArgumentNullException("itemReader"); } Array array = PwrArray.CreateAsRegular <T>(lengths, lowerBounds); int total = 0; try { array.FillAsRegular((fi, di) => { var v = itemReader(reader, fi, di); total = fi + 1; return(v); }, indices); } catch (Exception ex) when(ThrowDataInfo) { throw new StreamReadException(array, total, ex); } return(array); }