Script error, help

Hi guys, im having a little error in my script and i cant figure it out what am i doing wrong… could someone help me plz? appreciate

ing UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class CharacterStats : MonoBehaviour
{
    public List<BaseStats> stats = new List<BaseStats>();

    void Start()
    {
        stats.Add (new BaseStats(4, "Strenght", "Your attack power."));
        stats.Add (new BaseStats(2, "Vitality", "Your vitality level."));
    }

    public void AddStatBonus(List<BaseStats> statBonuses)
    {
        foreach(BaseStats statBonus in statBonuses)
        {
            stats.Find (x => x.StatName == statBonus.StatName).AddStatBonus (new StatsBonus (statBonus.BaseValue));
        }
    }

    public void RemoveStatBonus(List<BaseStats> statBonuses)
    {
        foreach(BaseStats statBonus in statBonuses)
        {
            stats.Find (x=> x.StatName == statBonus.StatName).RemoveStatBonus(new StatsBonus(statBonus.BaseValue));
        }
    }
}

Your issue is in the function AddStatBonus at this line:

stats.Find (x => x.StatName == statBonus.StatName).AddStatBonus (new StatsBonus (statBonus.BaseValue));

You have several scenarios:

  1. Your stats list is null
  2. The statBonus variable is null
  3. The returned value from Find is also null

My suggestion:
Split this up into more than one line and add some checks to make sure you are not operating on null values.