private void RefreshOutdata()
 {
     if (sourceData == null)
     {
         return;
     }
     if (outData == null)
     {
         return;
     }
     outData.Clear();
     foreach (var itm in sourceData)
     {
         if (selector(itm))
         {
             if (newFunc != null)
             {
                 outData.Add(newFunc(itm));
             }
             else
             {
                 if (transformer == null)
                 {
                     outData.Add(itm as TOut);
                 }
                 else
                 {
                     var item = new TOut();
                     transformer(itm, item);
                     outData.Add(item);
                 }
             }
         }
     }
     if (orderKeySelector != null && outData != null)
     {
         outData.Sort(orderKeySelector);
     }
 }