Trying to access specific sliced sprites in a sprite sheet via code

I’m working on a project that has a field that uses iconography that I have in a sprite sheet. This is the proof of concept before I do much more with greater scope but I’m running into a strange issue. The sprite sheet loads fine, the individual sprites are named so I can dynamically reference them, and everything seems to match up but they can’t find one another.

Sprite[] typeIcons;	
typeIcons = Resources.LoadAll<Sprite>("typeIcons");
Debug.Log(typeIcons[0]);												// Outputs "badgeIcon (UnityEngine.Sprite)"
Debug.Log(typeIcons[0].name);											// Outputs "badgeIcon"
Debug.Log(type);														// Outputs "Badge"
Debug.Log(type.ToLower()+"Icon");										// Outputs "badgeIcon"
Debug.Log(Array.FindIndex(typeIcons, s => s.name == type + "Icon"));	// Outputs "-1"

I am at a loss as to why the Array cannot find the .name that matches my input. Any help would be appreciated.

I solved the problem with a Dictionary. Specifically, here is what I did:

void Awake(){
	typeIconInput = Resources.LoadAll<Sprite>("typeIcons");
	typeIcons = new Dictionary<string, Sprite>{
		{   "badge1",      typeIconInput[0]    },
		{   "badge2",     typeIconInput[1]    },
		...{etc} };           }

After adding the wanted sprites to the Sprite array I could reference them using the names I wanted via the Dictionary Key:

	featureBut.transform.GetChild(0).GetComponent<Image>().sprite = typeIcons[type1.ToLower()];

Fully functional now!