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); } }