# fetchColumns

> Handler used to enumerate search columns to be used in the Search Table view.

## Definition

* **Type:** Field
* **Namespace:** [UnityEditor.Search](/engine/6000.7/script-reference/unityeditor/search.md)
* **Assembly:** UnityEditor

```csharp
public Func<SearchContext, IEnumerable<SearchItem>, IEnumerable<SearchColumn>> fetchColumns
```

### Remarks

See [SearchColumnProviderAttribute](/engine/6000.7/script-reference/unityeditor/search/searchcolumnproviderattribute.md) if you need to define new column formats to display your custom values.

### Examples

```csharp
static IEnumerable<SearchColumn> FetchColumns(SearchContext context, IEnumerable<SearchItem> items)
{
    yield return new SearchColumn("Performance/Sample Count", "count", nameof(PerformanceMetric));
    yield return new SearchColumn("Performance/Peak Time", "peak", nameof(PerformanceMetric));
    yield return new SearchColumn("Performance/Average Time", "avg", nameof(PerformanceMetric));
    yield return new SearchColumn("Performance/Total Time", "total", nameof(PerformanceMetric));
}

[SearchColumnProvider(nameof(PerformanceMetric))]
public static void PerformanceMetric(SearchColumn column)
{
    column.getter = args =>
    {
        switch (column.selector)
        {
            case "count": return EditorPerformanceTracker.GetSampleCount(args.item.id);
            case "peak": return EditorPerformanceTracker.GetPeakTime(args.item.id);
            case "avg": return EditorPerformanceTracker.GetAverageTime(args.item.id);
            case "total": return EditorPerformanceTracker.GetTotalTime(args.item.id);
            case "age": return EditorPerformanceTracker.GetTimestamp(args.item.id);
        }

        return null;
    };

    if (column.selector != "count")
    {
        column.drawer = args =>
        {
            GUI.Label(args.rect, GetTimeLabel((double)args.value, 0.5d, 2.0d), ItemSelectors.GetItemContentStyle(column));
            return args.value;
        };
    }
}
```
