/// <summary> /// 搜索列表 /// </summary> /// <param name="source">The list.</param> /// <param name="getName">Name of the get.</param> /// <returns>List<T>.</returns> private List <T> Search(List <T> source, Func <T, string> getName) { if (research) { List <T> list = new List <T>(); for (int i = 0; i < source.Count; i++) { var data = source[i]; var name = getName(data).ToLower(); var traditional = SearchTool.ToTraditional(name); var simplified = SearchTool.ToSimplified(name); var keyword = this.SearchContent.ToLower(); if (name.Contains(keyword) || simplified.Contains(keyword) || traditional.Contains(keyword)) { list.Add(data); } } return(list); } return(source); }
public override bool RunFilter(T item) { if (this.hitValues.Count == 0) { return(true); } var fieldInfo = typeof(T).GetField(this.FieldName, BindingFlags.Public | BindingFlags.Instance); var fieldValue = (string)fieldInfo.GetValue(item); var lowerFieldValue = fieldValue.ToLower(); var traditionalFieldValue = SearchTool.ToTraditional(lowerFieldValue); var simplifiedFieldValue = SearchTool.ToSimplified(lowerFieldValue); foreach (var hitValue in this.hitValues) { var lowerHitValue = hitValue.ToLower(); if (lowerFieldValue.Contains(lowerHitValue) || traditionalFieldValue.Contains(lowerHitValue) || simplifiedFieldValue.Contains(lowerHitValue)) { return(true); } } return(false); }