public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter) { int index = 0; var valueInfo = new ValueFilterInfo <int>(); while (tableReader.Read()) { valueInfo.ValueCopyer.WriteObject(tableReader); valueInfo.Key = index; valueInfo.Type = tableReader.GetType(); if (valueFilter.Filter(valueInfo)) { valueInfo.ValueCopyer.WriteTo(dataWriter[index]); } ++index; } }