/* * public static List<T> filterRange<T>(String indexes, List<T> input, indexOps operation = indexOps.pass) * where T : IRelatedCollectionItem * { * if (input == null) return new List<T>(); * List<Int32> indexList = indexes.rangeStringToIndexList(); * * return filterRange<T>(indexList, input, operation); * } * * /// <summary> * /// Uzima elemente koji su navedeni u listi * /// </summary> * /// <typeparam name="T"></typeparam> * /// <param name="indexes"></param> * /// <param name="input"></param> * /// <param name="operation"></param> * /// <returns></returns> * public static List<T> filterRange<T>(List<Int32> indexes, List<T> input, indexOps operation = indexOps.pass) * where T : IRelatedCollectionItem * { * if (input == null) return new List<T>(); * // Int32 ti = Convert.ToInt32(x.id); * switch (operation) * { * default: * case indexOps.pass: * return input.Where(x => indexes.Contains(Convert.ToInt32(x.id))).ToList(); * break; * * case indexOps.remove: * return input.Where(x => !indexes.Contains(Convert.ToInt32(x.id))).ToList(); * break; * } * } */ /// <summary> /// Obrađuju string podatak korišćenjem imbIndexOps metoda /// </summary> /// <param name="indexes">Indeksna instrukcija</param> /// <param name="input">Ulazni string</param> /// <param name="operation">Tip operacije</param> /// <returns>Rezultat</returns> public static List <string> filterStringRange(String indexes, List <string> input, indexOps operation = indexOps.pass) { var ind = indexes.rangeStringToIndexList(input.Count); List <String> output = new List <string>(); foreach (Int32 i in ind) { output.Add(input[i]); } return(output); }
///// <summary> ///// Obrađuju string podatak korišćenjem imbIndexOps metoda ///// </summary> ///// <param name="indexes">Indeksna instrukcija</param> ///// <param name="input">Ulazni string</param> ///// <param name="operation">Tip operacije</param> ///// <returns>Rezultat</returns> //public static String imbIndexOps(this String input, String indexes, indexOps operation = indexOps.pass) //{ // return // filterStringRange(indexes.rangeStringToIndexList(), input.getStringLineList(StringSplitOptions.None)). // toCsvInLine(Environment.NewLine); //} ///// <summary> ///// Obrađuju string podatak korišćenjem imbIndexOps metoda ///// </summary> ///// <param name="indexes">Indeksi</param> ///// <param name="input">Ulazni string</param> ///// <param name="operation">Tip operacije</param> ///// <returns>Rezultat</returns> //public static String imbIndexOps(this String input, List<int> indexes, indexOps operation = indexOps.pass) //{ // return filterStringRange(indexes, input.getStringLineList(StringSplitOptions.None)).toCsvInLine(Environment.NewLine); //} ///// <summary> ///// Vraca string koji sadrži samo linije koje imaju needle ///// </summary> ///// <param name="input">Ulazni string</param> ///// <param name="needle">String koji se traži</param> ///// <param name="inverseTest">Da li da invertuje razultate</param> ///// <returns>Samo linije koje imaju needle</returns> //public static String imbLinesWithNeedle(this String input, String needle, Boolean inverseTest = false) //{ // return // input.getStringLineList(StringSplitOptions.RemoveEmptyEntries, needle, inverseTest).toCsvInLine( // Environment.NewLine); //} /* * public static List<T> filterRange<T>(String indexes, List<T> input, indexOps operation = indexOps.pass) * where T : IRelatedCollectionItem * { * if (input == null) return new List<T>(); * List<Int32> indexList = indexes.rangeStringToIndexList(); * * return filterRange<T>(indexList, input, operation); * } * * /// <summary> * /// Uzima elemente koji su navedeni u listi * /// </summary> * /// <typeparam name="T"></typeparam> * /// <param name="indexes"></param> * /// <param name="input"></param> * /// <param name="operation"></param> * /// <returns></returns> * public static List<T> filterRange<T>(List<Int32> indexes, List<T> input, indexOps operation = indexOps.pass) * where T : IRelatedCollectionItem * { * if (input == null) return new List<T>(); * // Int32 ti = Convert.ToInt32(x.id); * switch (operation) * { * default: * case indexOps.pass: * return input.Where(x => indexes.Contains(Convert.ToInt32(x.id))).ToList(); * break; * * case indexOps.remove: * return input.Where(x => !indexes.Contains(Convert.ToInt32(x.id))).ToList(); * break; * } * } */ ///// <summary> ///// Obrađuju string podatak korišćenjem imbIndexOps metoda ///// </summary> ///// <param name="indexes">Indeksna instrukcija</param> ///// <param name="input">Ulazni string</param> ///// <param name="operation">Tip operacije</param> ///// <returns>Rezultat</returns> //public static List<string> filterStringRange(String indexes, List<string> input, // indexOps operation = indexOps.pass) //{ // var ind = indexes.rangeStringToIndexList(input.Count); // List<String> output = new List<string>(); // foreach (Int32 i in ind) output.Add(input[i]); // return output; //} public static List <T> imbIndexOps <T>(this IList <T> source, List <Int32> indexMap, indexOps ops = indexOps.pass) { List <T> output = new List <T>(); foreach (Int32 i in indexMap) { output.Add(source[i]); } return(output); }