/// <summary> /// Vyfiltruje z unikátních dvojic ty dvojice, které nesedí s ostatními. /// </summary> /// <returns></returns> public Dictionary<string, string> Filter(FilterFunction filterFunction) { var pairsCount = CountMatchesPairs(filterFunction); var bestCountPairs = TakeBestCountPairs(pairsCount); var bestPair = TakeBestPairs(bestCountPairs); return bestPair; }
/// <summary> /// Initializes a new instance of the <see cref="Criterion"/> class. /// </summary> public Criterion(string propertyName, FilterFunction function, IEnumerable <Guid> ids) : this(propertyName, function, "(" + ids.Select(x => $"'{x}'").ToString(", ") + ")") { if (function != FilterFunction.In && function != FilterFunction.NotIn) { throw new ArgumentException("List of IDs is only supported with 'FilterFunction.In or FilterFunction.NotIn'."); } }
/// <summary> /// Initializes a new instance of the <see cref="Criterion"/> class. /// </summary> public Criterion(string propertyName, FilterFunction function, IEnumerable <string> ids) : this(propertyName, function, "(" + ids.Select(x => "'" + x.ToStringOrEmpty().Replace("'", "''") + "'").ToString(", ") + ")") { if (function != FilterFunction.In) { throw new ArgumentException("List of IDs is only supported with 'FilterFunction.In'."); } }
/// <summary> /// Initializes a new instance of the <see cref="Criterion"/> class. /// </summary> public Criterion(string propertyName, FilterFunction function, IEnumerable <int> ids) : this(propertyName, function, "(" + ids.ToString(", ") + ")") { if (function != FilterFunction.In) { throw new ArgumentException("List of IDs is only supported with 'FilterFunction.In'."); } }
/// <summary> /// Adds a filter /// </summary> /// <param name="name">Filter name</param> /// <param name="filterFunction">Function that returns true for elements that should be included in the output</param> /// <returns>A Collapse instance, used for chaining</returns> public Collapse SetFilter(string name, FilterFunction filterFunction) { if (filterMap == null) filterMap = new Dictionary<string, FilterFunction>(); filterMap[name] = filterFunction; return this; }
/// <summary> /// 添加过滤器,不符合规则的数据会被忽略 /// </summary> /// <param name="fn">规则函数,返回false表示要忽略</param> /// <returns>-1或添加前的过滤器数量</returns> public int AddFilter(FilterFunction fn) { if (null == fn) { return(-1); } filters.Add(fn); return(filters.Count - 1); }
public ActionResult ToDoList(DateFilterModel d) { if (d.Status == "null") { d.Status = null; } var model = FilterFunction.Filter(d); return(View(model)); }
public ActionResult ToDoList(DateFilterModel d) { if (d.Status == "null") { d.Status = null; } ViewData["User"] = td.aspnet_Users.ToList(); var model = FilterFunction.FilterForAdmin(d); return(View(model)); }
public void FilterTestShoulWorkWithAddZeroValue() { var listOfFilter = new List <int>() { 0, 0, 1, 0 }; listOfFilter = FilterFunction.Filter(listOfFilter, x => x > 0); Assert.IsTrue(listOfFilter.Contains(1)); Assert.IsFalse(listOfFilter.Contains(0)); }
public void FilterTestShoulWork() { var listOfFilter = new List <int>() { 1, 2, 3, 4 }; listOfFilter = FilterFunction.Filter(listOfFilter, x => x > 0); Assert.IsTrue(listOfFilter.Contains(2)); Assert.IsFalse(listOfFilter.Contains(-1)); }
public void FilterRecords(List <PerformerStatRecord> allRecords, out string errorStr) { var func = FilterFunction.FirstOrDefault(i => i.Value == FunctionSelectedComment) ?? FilterFunction[0]; var formula = func.Text; var resolver = CheckFunction(formula, out errorStr); if (resolver == null) { return; } var resolverVars = resolver.GetVariableNames(); var records = allRecords.ToList(); var calcError = ""; records.ForEach(r => { // заполнить переменные resolver-а var varValue = new Dictionary <string, double>(); foreach (var name in resolverVars) { var val = formulaProperties[name].GetValue(r); double dVal = val is float ?(float)val : val is double ?(double)val : val is int?(int)val: val is decimal ? (float)(decimal)val : 0; varValue.Add(name, dVal); } // посчитать try { double rst; resolver.Calculate(varValue, out rst); r.FunctionValue = rst; } catch (Exception ex) { calcError = Resource.ErrorMessageCalculationFunctions + " '" + formula + "': " + ex.Message; r.FunctionValue = 0; } }); if (!string.IsNullOrEmpty(calcError)) { errorStr = calcError; } // вернуть первые N Records = (Order == SelectOrder.First ? records.OrderByDescending(r => r.FunctionValue) : records.OrderBy(r => r.FunctionValue)).Take(CountAccount).ToList(); }
public static IEnumerable <Tuple <T1, T2, T3> > Filter <T1, T2, T3> ( this IEnumerable <Tuple <T1, T2, T3> > iterable, Func <T1, T2, T3, int, bool> valueFactory ) { return(FilterFunction.Filter ( valueFactory, iterable )); }
/// <summary> /// Initializes a new instance of the <see cref="MultiValueFilterViewModel"/> class. /// Initializes instance of the Filter /// </summary> /// <param name="name">The name of the filter.</param> /// <param name="title">The title of the filter.</param> /// <param name="description">The description text for the filter.</param> /// <param name="filter">The function that filters a set of data.</param> /// <param name="validator">Function that determines if the filter value is valid.</param> /// <param name="dialogService">Dialog service for opening dialogs from view model.</param> /// <param name="values">The default possible values to filter by.</param> /// <param name="delimiter"> /// The deliimeter to use for parsing a string containing a list. /// 0 = no delimiter. /// </param> /// <param name="defaultValue">The default value to filter by.</param> public MultiValueFilterViewModel( string name, string title, string description, FilterFunction filter, Validate validator, IDialogService dialogService, IEnumerable <string> values = null, char delimiter = '\0', string defaultValue = "") { if (values == null) { values = new ReactiveList <string>(); } this.Name = name; this.Title = title; this.Description = description; this.DefaultValues = values; this.filter = filter; this.validator = validator; var filterCommand = ReactiveCommand.Create(); filterCommand.Subscribe(_ => this.FilterImplementation()); this.FilterCommand = filterCommand; var cancelCommand = ReactiveCommand.Create(); cancelCommand.Subscribe(_ => this.CancelImplementation()); this.CancelCommand = cancelCommand; var selectValueCommand = ReactiveCommand.Create( this.WhenAnyValue(x => x.Value) .Select(value => this.ParseValues(value)) .Select(vals => vals.Any())); selectValueCommand.Subscribe(_ => this.SelectValueImplementation()); this.SelectValueCommand = selectValueCommand; var removeValueCommand = ReactiveCommand.Create(this.WhenAnyValue(x => x.SelectedValue).Select(v => v != null)); removeValueCommand.Subscribe(_ => this.RemoveValueImplementation()); this.RemoveValueCommand = removeValueCommand; this.Value = defaultValue; this.Values = new ReactiveList <string>(); this.delimiter = delimiter; this.dialogService = dialogService; this.Status = false; }
public void FilterTestShoulWorkWhenWeDoNotAddValues() { var listOfFilter = new List <int>() { }; listOfFilter = FilterFunction.Filter(listOfFilter, x => x > 0); for (int i = 0; i <= 10; i++) { Assert.IsFalse(listOfFilter.Contains(i)); } }
static List <int> FilterWithDelegate(this IEnumerable <int> list, FilterFunction filter) { List <int> result = new List <int>(); foreach (var item in list) { if (filter(item)) { result.Add(item); } } return(result); }
public static IList <T> Filter <T>(this IList <T> list, [NotNull] FilterFunction <T> filter) { IList <T> filteredList = new List <T>(); foreach (T item in list) { if (filter(item)) { filteredList.Add(item); } } return(filteredList); }
public static void AddFunction(string function, string description) { var func = FilterFunction.FirstOrDefault(f => f.Text == function); if (func != null) { func.Value = description; } else { FilterFunction.Add(new SelectListItem { Value = description, Text = function }); } // сохранить настройки SiteSettings.Instance.FunctionSettings.Functions = FilterFunction.Select(i => new TraderFilterFunction(i)).ToList(); SiteSettings.Instance.SaveSettings(); }
/// <summary> /// Gets the database operator equivalent for this filter option. /// </summary> public static string GetDatabaseOperator(this FilterFunction option) { return(option switch { FilterFunction.Contains or FilterFunction.BeginsWith or FilterFunction.EndsWith => "LIKE", FilterFunction.Is => "=", FilterFunction.IsNot => "<>", FilterFunction.LessThan => "<", FilterFunction.LessThanOrEqual => "<=", FilterFunction.MoreThan => ">", FilterFunction.MoreThanOrEqual => ">=", FilterFunction.Null => "Is NULL", FilterFunction.In => "IN", FilterFunction.NotIn => "NOT IN", FilterFunction.NotNull => "Is NOT NULL", FilterFunction.NotContains => "NOT LIKE", _ => throw new NotSupportedException(option + " is not supported in GetDatabaseOperator()."), });
/// <summary> /// Gets the database operator equivalent for this filter option. /// </summary> public static string GetDatabaseOperator(this FilterFunction option) { switch (option) { case FilterFunction.Contains: case FilterFunction.BeginsWith: case FilterFunction.EndsWith: return("LIKE"); case FilterFunction.Is: return("="); case FilterFunction.IsNot: return("<>"); case FilterFunction.LessThan: return("<"); case FilterFunction.LessThanOrEqual: return("<="); case FilterFunction.MoreThan: return(">"); case FilterFunction.MoreThanOrEqual: return(">="); case FilterFunction.Null: return("Is NULL"); case FilterFunction.In: return("IN"); case FilterFunction.NotNull: return("Is NOT NULL"); case FilterFunction.NotContains: return("NOT LIKE"); default: throw new NotSupportedException(option + " is not supported in GetDatabaseOperator()."); } }
public static void DeleteFunction(string function) { if (FilterFunction.Count <= 1) { return; } var func = FilterFunction.FirstOrDefault(f => f.Text == function); if (func == null) { return; } FilterFunction.Remove(func); // сохранить настройки SiteSettings.Instance.FunctionSettings.Functions = FilterFunction.Select(i => new TraderFilterFunction(i)).ToList(); SiteSettings.Instance.SaveSettings(); }
/// <summary> /// Spočítá, kolik unikátních dvojic si navzájem neodporuje. /// </summary> /// <returns></returns> private Dictionary<int, int> CountMatchesPairs(FilterFunction filterFunction) { Dictionary<int, int> pairsCounter = new Dictionary<int, int>(); int index = 0, counter; foreach (var pair in uniquePairs) { counter = 0; foreach (var testPair in uniquePairs) { if (filterFunction(pair, testPair)) counter++; } pairsCounter[index++] = counter; } return pairsCounter; }
static void del_01() { List <int> list = new List <int> { 1, 2, 3, 4, 5, 6 }; var result = Filter(list); //IEnumarableExtension.Print(result); list.Print(); // это возможно после установки this в public static void Print(this List<int> list) в class IEnumarableExtension Console.WriteLine("=============="); result.Print(); Console.WriteLine("=============="); var result3 = FilterThree(list); result3.Print(); Console.WriteLine("=============="); var resultCommon = CommonItems(result, result3); resultCommon.Print(); Console.WriteLine("=============="); Console.WriteLine("=======And Now With Delegate!!! ======"); FilterFunction f = IsEven; var resultDel01 = list.FilterWithDelegate(f); resultDel01.Print(); Console.WriteLine("=============="); FilterFunction f3 = IsEven3; var resultDel02 = list.FilterWithDelegate(f3); resultDel02.Print(); Console.WriteLine("=========И можно анонимно== (анонимные функции) ==="); FilterFunction f444 = delegate(int item) { return(item % 2 == 0); }; Console.WriteLine("=============="); Console.WriteLine("=============="); Console.WriteLine("=============="); //Action<int> }
/// <summary> /// Initializes a new instance of the <see cref="MultiValueFilterViewModel"/> class. /// Initializes instance of the Filter /// </summary> /// <param name="name">The name of the filter.</param> /// <param name="title">The title of the filter.</param> /// <param name="description">The description text for the filter.</param> /// <param name="filter">The function that filters a set of data.</param> /// <param name="validator">Function that determines if the filter value is valid.</param> /// <param name="dialogService">Dialog service for opening dialogs from view model.</param> /// <param name="values">The default possible values to filter by.</param> /// <param name="delimiter"> /// The deliimeter to use for parsing a string containing a list. /// 0 = no delimiter. /// </param> /// <param name="defaultValue">The default value to filter by.</param> public MultiValueFilterViewModel( string name, string title, string description, FilterFunction filter, Validate validator, IDialogService dialogService, IEnumerable <string> values = null, char delimiter = '\0', string defaultValue = "") { if (values == null) { values = new ReactiveList <string>(); } Name = name; Title = title; Description = description; DefaultValues = values; this.filter = filter; this.validator = validator; FilterCommand = ReactiveCommand.Create(FilterImplementation); CancelCommand = ReactiveCommand.Create(CancelImplementation); SelectValueCommand = ReactiveCommand.Create(SelectValueImplementation, this.WhenAnyValue(x => x.Value) .Select(ParseValues) .Select(vals => vals.Any())); RemoveValueCommand = ReactiveCommand.Create(RemoveValueImplementation, this.WhenAnyValue(x => x.SelectedValue).Select(v => v != null)); Value = defaultValue; Values = new ReactiveList <string>(); this.delimiter = delimiter; this.dialogService = dialogService; Status = false; }
public static List <Result> Filter(GameRecords gameRecords, FilterFunction filterFunction) { List <Result> lResults = new List <Result>(); foreach (GameRecord lGameRecord in gameRecords) { CoordinateSystem lCoord = new CoordinateSystem(lGameRecord.BoardSize); GoBoard lGoBoard = new GoBoard(lGameRecord.BoardSize); for (int i = 0; i < lGameRecord.Count - 1; i++) { lGoBoard.PlayStone(lGameRecord[i].Move, lGameRecord[i].Player, false); int lNextMove; Color lNextPlayer; if (i >= lGameRecord.Count) { lNextMove = CoordinateSystem.PASS; lNextPlayer = Color.Empty; } else { lNextMove = lGameRecord[i + 1].Move; lNextPlayer = lGameRecord[i + 1].Player; } if (filterFunction(lGoBoard, lGameRecord[i].Player, lGameRecord[i].Move, lNextPlayer, lNextMove)) { // { // Console.WriteLine(lGameRecord.GameName + " (" + i.ToString() + ") -> " + lCoord.ToString(lNextMove)); lResults.Add(new Result(lGameRecord, i)); } // } } } return(lResults); }
public static List<Result> Filter(GameRecords gameRecords, FilterFunction filterFunction) { List<Result> lResults = new List<Result>(); foreach (GameRecord lGameRecord in gameRecords) { CoordinateSystem lCoord = new CoordinateSystem(lGameRecord.BoardSize); GoBoard lGoBoard = new GoBoard(lGameRecord.BoardSize); for (int i = 0; i < lGameRecord.Count - 1; i++) { lGoBoard.PlayStone(lGameRecord[i].Move, lGameRecord[i].Player, false); int lNextMove; Color lNextPlayer; if (i >= lGameRecord.Count) { lNextMove = CoordinateSystem.PASS; lNextPlayer = Color.Empty; } else { lNextMove = lGameRecord[i + 1].Move; lNextPlayer = lGameRecord[i + 1].Player; } if (filterFunction(lGoBoard, lGameRecord[i].Player, lGameRecord[i].Move, lNextPlayer, lNextMove)) // { // Console.WriteLine(lGameRecord.GameName + " (" + i.ToString() + ") -> " + lCoord.ToString(lNextMove)); lResults.Add(new Result(lGameRecord, i)); // } } } return lResults; }
private static bool isFilterFunction(Type type, out FilterFunction filterFunc) { var attribute = type .CustomAttributes .Where(attr => attr.AttributeType.Name == "ServerFilter") .SingleOrDefault(); if (attribute != null) { var method = type.GetMethod("Apply"); Debug.Assert(method != null); filterFunc = wrapped => (data, request, scope) => method .Invoke(null, new object[] { request, wrapped }); return(true); } filterFunc = null; return(false); }
public IList<EmployeeDescription> GetEmployeesDescriptionsF(FilterFunction<EmployeeDescription> filter) { EnsureAdmin(); return _db.GetEmployeesDescriptions(filter); }
public IList<EmployeeDescription> GetEmployeeDescriptionsF(User user, FilterFunction<EmployeeDescription> filter) { EnsureEmployeeWithSpecifiedLogin(user.PublicUserInfo.Login); return _db.GetEmployeeDescriptions(user, filter); }
private static void Filter2D(Bitmap input, ref Bitmap output, FilterFunction filterFunction) { int[] dims = new int[2] { input.Width, input.Height }; kiss_fft_cpx<float>[] timeDomain = new kiss_fft_cpx<float>[input.Width * input.Height]; kiss_fft_cpx<float>[] frequencyDomain = new kiss_fft_cpx<float>[input.Width * input.Height]; for (int i = 0; i < input.Width * input.Height; ++i) { timeDomain[i] = new kiss_fft_cpx<float>(); frequencyDomain[i] = new kiss_fft_cpx<float>(); } { // FFT for (int x = 0; x < input.Width; ++x) { for (int y = 0; y < input.Height; ++y) { timeDomain[y * input.Width + x].r = input.GetPixel(x, y).R; timeDomain[y * input.Width + x].i = 0.0f; } } KissFFTnd<float> kissFftnd = new KissFFTnd<float>(dims, 2, false, new FloatArithmetic()); kissFftnd.kiss_fftnd(new Array<kiss_fft_cpx<float>>(timeDomain), new Array<kiss_fft_cpx<float>>(frequencyDomain)); for (int i = 0; i < input.Width * input.Height; ++i) { frequencyDomain[i].r /= input.Width * input.Height; frequencyDomain[i].i /= input.Width * input.Height; } } { // filter for (int x = 0; x < input.Width; ++x) { for (int y = 0; y < input.Height; ++y) { float q = filterFunction(x, y, input.Width, input.Height); frequencyDomain[y * input.Width + x].r *= q; frequencyDomain[y * input.Width + x].i *= q; } } } { // IFFT output = new Bitmap(input.Width, input.Height); KissFFTnd<float> kissFftnd = new KissFFTnd<float>(dims, 2, true, new FloatArithmetic()); kissFftnd.kiss_fftnd(new Array<kiss_fft_cpx<float>>(frequencyDomain), new Array<kiss_fft_cpx<float>>(timeDomain)); for (int x = 0; x < input.Width; ++x) { for (int y = 0; y < input.Height; ++y) { int intensity = (int) timeDomain[y * input.Width + x].r; intensity = Math.Min(255, Math.Max(0, intensity)); output.SetPixel(x, y, Color.FromArgb(intensity, intensity, intensity)); } } } }
public Filter(FilterFunction f, IEnumerable ie) { _f = f; _ie = ie; }
private static void Filter2D(Bitmap input, ref Bitmap output, FilterFunction filterFunction) { int[] dims = new int[2] { input.Width, input.Height }; kiss_fft_cpx <float>[] timeDomain = new kiss_fft_cpx <float> [input.Width * input.Height]; kiss_fft_cpx <float>[] frequencyDomain = new kiss_fft_cpx <float> [input.Width * input.Height]; for (int i = 0; i < input.Width * input.Height; ++i) { timeDomain[i] = new kiss_fft_cpx <float>(); frequencyDomain[i] = new kiss_fft_cpx <float>(); } { // FFT for (int x = 0; x < input.Width; ++x) { for (int y = 0; y < input.Height; ++y) { timeDomain[y * input.Width + x].r = input.GetPixel(x, y).R; timeDomain[y * input.Width + x].i = 0.0f; } } KissFFTnd <float> kissFftnd = new KissFFTnd <float>(dims, 2, false, new FloatArithmetic()); kissFftnd.kiss_fftnd(new Array <kiss_fft_cpx <float> >(timeDomain), new Array <kiss_fft_cpx <float> >(frequencyDomain)); for (int i = 0; i < input.Width * input.Height; ++i) { frequencyDomain[i].r /= input.Width * input.Height; frequencyDomain[i].i /= input.Width * input.Height; } } { // filter for (int x = 0; x < input.Width; ++x) { for (int y = 0; y < input.Height; ++y) { float q = filterFunction(x, y, input.Width, input.Height); frequencyDomain[y * input.Width + x].r *= q; frequencyDomain[y * input.Width + x].i *= q; } } } { // IFFT output = new Bitmap(input.Width, input.Height); KissFFTnd <float> kissFftnd = new KissFFTnd <float>(dims, 2, true, new FloatArithmetic()); kissFftnd.kiss_fftnd(new Array <kiss_fft_cpx <float> >(frequencyDomain), new Array <kiss_fft_cpx <float> >(timeDomain)); for (int x = 0; x < input.Width; ++x) { for (int y = 0; y < input.Height; ++y) { int intensity = (int)timeDomain[y * input.Width + x].r; intensity = Math.Min(255, Math.Max(0, intensity)); output.SetPixel(x, y, Color.FromArgb(intensity, intensity, intensity)); } } } }
static MyOctreeNode() { ContentFilter = new FilterFunction(MyOctreeNode.SignedDistanceFilterInternal); MaterialFilter = new FilterFunction(MyOctreeNode.HistogramFilterInternal); }
public IList<WorkRecord> GetRecordsF(User user, FilterFunction<WorkRecord> filter) { EnsureEmployeeWithSpecifiedLogin(user.PublicUserInfo.Login); return _db.GetRecords(user, filter); }
public IEnumerable<EmployeeDescription> GetEmployeesOfProjectF(Project project, FilterFunction<EmployeeDescription> filter) { EnsureManagerWithSpecifiedLogin(project.Manager.Login); return _db.GetEmployeesOfProject(project, filter); }
protected Filter(bool shouldBeApplied, FilterFunction func,string name = null) { _func = func; ShouldBeApplied = shouldBeApplied; Name = name ?? GetType().Name; }
public IEnumerable<WorkRecord> GetRecordsOfEmployeeF(EmployeeDescription employeeDesc, FilterFunction<WorkRecord> filter) { EnsureManager(); return _db.GetRecordsOfEmployee(employeeDesc, filter); }
public IEnumerable<Contract> GetContractsOfManagerF(User manager, FilterFunction<Contract> filter) { EnsureManagerWithSpecifiedLogin(manager.PublicUserInfo.Login); return _db.GetContractsOfManager(manager, filter); }
public IList<User> GetUsersF(FilterFunction<User> filter) { EnsureAdmin(); return _db.GetUsers(filter); }
/// <summary> /// 构造器 /// </summary> /// <param name="filterFieldName"></param> /// <param name="filterValue"></param> /// <param name="filterFunction"></param> public QueryFilter(string filterFieldName, string filterValue, FilterFunction filterFunction) { this.filterFieldName = filterFieldName; this.filterValue = filterValue; this.filterFunction = filterFunction; }
static MyOctreeNode() { ContentFilter = SignedDistanceFilterInternal; MaterialFilter = HistogramFilterInternal; }
public TLeafData ComputeFilteredValue(FilterFunction filter, int lod) { fixed (TLeafData* ptr = Data) { return filter(ptr, lod); } }
public unsafe byte ComputeFilteredValue(FilterFunction filter, int lod) { byte *pData = &this.Data.FixedElementField; return(filter(pData, lod)); }
public DataFilter(string name, FilterFunction filter) { this.ShortName = name; this.Filter = filter; }
/// <summary> /// Initializes a new instance of the <see cref="Criterion"/> class. /// </summary> public Criterion(string propertyName, FilterFunction function, object value) { PropertyName = propertyName; FilterFunction = function; Value = value; }
public EqualityBinaryOperatorHandlerBase(IExpressionPart left, IExpressionPart right, FilterFunction @operator) : base(left, right, @operator) { }
public IList<Contract> GetContractsF(User user, FilterFunction<Contract> filter) { EnsureEmployeeWithSpecifiedLogin(user.PublicUserInfo.Login); return _db.GetContracts(user, filter); }
public IList<Project> GetProjectsF(FilterFunction<Project> filter) { EnsureAdmin(); return _db.GetProjects(filter); }