Я бы переписал ваш внутренний запрос, чтобы он просто возвращал все значения в одном запросе.
void Load()
{
var inventory = SaveLoad.Load<List<string>>("Inventory")
.Join(itemDatabase.itemDataList, name=>name, item=>item.name, (name,item)=>item);
// Use one of the following three methods:
instance.AddRange(inventory);
// or if instance is just a List of items then...
instance = inventory.ToList();
// or if there is no AddRange, and instance is not just a List:
foreach(var item in inventory)
{
instance.Add(item);
}
}
В качестве альтернативы создайте себе метод GetInventory:
IEnumerable<Item> GetInventory()
{
return SaveLoad.Load<List<string>>("Inventory")
.Join(itemDatabase.itemDataList, name=>name, item=>item.name, (name,item)=>item);
}
Тогда вы можете делать все вы хотите использовать его в своем методе загрузки.