/// <summary>
 /// 搜索列表
 /// </summary>
 /// <param name="source">The list.</param>
 /// <param name="getName">Name of the get.</param>
 /// <returns>List&lt;T&gt;.</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);
            }