Resources.FindObjectsOfTypeAll(typeof(Material))) not working correctly

I am working on a editor script to detect duplicate materials within a project and show this through a editor script. When I started the script Resources.FindObjectsOfTypeAll(typeof(Material))) would find all the materials within my project, leading to list of several hundreds off materials showing up. After I try’d to order this list through code the Resources.FindObjectsOfTypeAll(typeof(Material))) only seems to find the 18 materials pre- made by unity.

Why is this command suddenly acting different then before ? I tried going back a step and rewrite things, but that did not seem to help either. The basics if been working from was this script. Am I doing something wrong?

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;

public class DetectMaterialNew : EditorWindow
{
    private Vector2 scrollPos;
    private bool groupEnabled;

    List<Material> arrayOfMaterials = new List<Material>();

    [MenuItem("Window/Detect Duplicate Material %g")]
    static void Init()
    {
        DetectMaterialNew window = (DetectMaterialNew)EditorWindow.GetWindow(typeof(DetectMaterialNew));
    }

    void OnGUI()
    {
        GUILayout.Label("Click to detect Duplicates", EditorStyles.boldLabel);
        if (GUILayout.Button("Detect Material"))
        {
            DetectAllMaterials();
        }

        if (groupEnabled)
        {
            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.BeginVertical();

            GUILayout.Label("Total duplicate materials");
            for (int i = 0; i < arrayOfMaterials.Count; i++)
            {
                EditorGUILayout.LabelField(i.ToString(), arrayOfMaterials*.name);*

}

EditorGUILayout.EndVertical();
EditorGUILayout.BeginVertical();

GUILayout.Label(“Materials”);
for (int i = 0; i < arrayOfMaterials.Count; i++)
{
EditorGUILayout.ObjectField(arrayOfMaterials*, typeof(Material), true);*
}

EditorGUILayout.EndVertical();
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndScrollView();
}
}

void DetectAllMaterials()
{
foreach (Material c in Resources.FindObjectsOfTypeAll(typeof(Material)))
{
arrayOfMaterials.Add(c);
}
groupEnabled = true;
}
}

Seems like I could fix it fairly easily. This only occurred after I rebooted my unity, and after selecting certain materials in the hierarchy they would appear again.

With that knowledge I managed to fix it by adding the following part to the code.

    void Start()
    {
        Resources.LoadAll("Assets", typeof(Material));
    }