static public IEnumerable <T> TruncateRandom <T>(this IEnumerable <T> item, RandIntSource source, int limit = 0) { List <T> list = item.ToList(); list.RemoveEndingRandom(source, limit); return(list); }
static public string ReadRandomLine(this StreamSystem item, string path, RandIntSource source, long milliseconds = StreamSystem.DEFAULT_WAIT) { string output; item.AttemptReadRandomLine(path, out output, source, milliseconds); return(output); }
static public IEnumerable <T> OffsetRandom <T>(this IEnumerable <T> item, RandIntSource source, int limit = int.MaxValue) { List <T> list = item.ToList(); list.RemoveBeginningRandom(source, limit); return(list); }
static public IEnumerable <T> Randomize <T>(this IEnumerable <T> item, RandIntSource source) { List <T> list = item.ToList(); list.Shuffle(source); return(list); }
static public void Shuffle <T>(this IList <T> item, RandIntSource source) { for (int i = 0; i < item.Count; i++) { item.SwapValues(i, source.GetBetween(i, item.Count)); } }
static public string ReadTextRandomLine(this Stream item, RandIntSource source) { StreamReader reader = new StreamReader(item); if (item.CanSeek) { item.Position = source.GetIndex((int)item.Length); if (reader.ReadLine() != null) { string line = reader.ReadLine(); if (line != null) { return(line); } } item.Position = 0; return(reader.ReadLine()); } return(reader.ReadLines().ToList().GetRandom(source)); }
public RandIntBox(RandIntSource s) { source = s; }
static public AttemptResult AttemptReadRandomLine(this StreamSystem item, string path, Process <string> process, RandIntSource source, long milliseconds = StreamSystem.DEFAULT_WAIT) { return(item.AttemptRead(path, delegate(Stream stream) { process(stream.ReadTextRandomLine(source)); }, milliseconds)); }
static public AttemptResult AttemptReadRandomLine(this StreamSystem item, string path, out string output, RandIntSource source, long milliseconds = StreamSystem.DEFAULT_WAIT) { return(item.AttemptReadRandomLine(path, s => s, out output, source, milliseconds)); }
public RandIntBox_Between(int na, int nb, RandIntSource s) : base(s) { a = na; b = nb; }
static public AttemptResult AttemptReadRandomLine <T>(this StreamSystem item, string path, Operation <T, string> operation, out T output, RandIntSource source, long milliseconds = StreamSystem.DEFAULT_WAIT) { T temp = default(T); AttemptResult result = item.AttemptReadRandomLine(path, delegate(string line) { temp = operation(line); }, source, milliseconds); if (result.IsDesired()) { output = temp; } else { output = default(T); } return(result); }
static public T GetRandom <T>(this IList <T> item, RandIntSource source) { return(item.Get(source.GetIndex(item.Count))); }
static public void RemoveEndingRandom <T>(this IList <T> item, RandIntSource source, int index_limit = 0) { item.RemoveEnding(source.GetIndex(item.Count).BindAbove(index_limit)); }
static public void RemoveBeginningRandom <T>(this IList <T> item, RandIntSource source, int index_limit = int.MaxValue) { item.RemoveBeginning(source.GetIndex(item.Count).BindBelow(index_limit)); }
static public IEnumerable <T> GetMultipleRandom <T>(this IList <T> item, int count, RandIntSource source) { for (int i = 0; i < count; i++) { yield return(item.GetRandom(source)); } }
static public IEnumerable <T> RotateRandom <T>(this IList <T> item, RandIntSource source) { return(item.RotateLooped(source.Get())); }
public RandFloatSource_IntSource(RandIntSource i) { int_source = i; }
static public T ReadRandomLine <T>(this StreamSystem item, string path, Operation <T, string> operation, RandIntSource source, long milliseconds = StreamSystem.DEFAULT_WAIT) { T output; item.AttemptReadRandomLine <T>(path, operation, out output, source, milliseconds); return(output); }