private void List_RetrieveVirtualItem(object?sender, RetrieveVirtualItemEventArgs e)
    {
        string[] LineInfo;
        int      index = ReversableIndex(e.ItemIndex, true);

        //this only makes senes knowing that it is really an IList
        // for a pure IEnumerable this will kill performance
        var Line = CurrentLines.Entries.ElementAt(index);

        LineInfo = new string[] { TimestampOptions.ConvertToString(Line.Timestamp), Line.Level, Line.Message };

        e.Item = new ListViewItem(LineInfo);
    }
 public string[] AsArray(bool datesBeforeValue)
 {
     if (datesBeforeValue)
     {
         return(new string[] {
             Count.ToString(),
             TimestampOptions.ConvertToString(First),
             TimestampOptions.ConvertToString(Last),
             TraitValue
         });
     }
     else
     {
         return(new string[] {
             Count.ToString(),
             TraitValue,
             TimestampOptions.ConvertToString(First),
             TimestampOptions.ConvertToString(Last),
         });
     }
 }