Similar function for each in array

I haven’t worked with arrays much and I’m hoping someone can point me in the right direction.
I’m trying to learn a way to save duplicating the following slider listeners and functions for each slider in the array.

    public Slider[] slider;
    public SkinnedMeshRenderer Model;

    void Start()
    {
        slider[0].onValueChanged.AddListener(delegate { SetSlider0(); });
        slider[1].onValueChanged.AddListener(delegate { SetSlider1(); });
        //etc....
    }
    
    public void SetSlider0()
    {
        float value0 = slider[0].value;
        Model.SetBlendShapeWeight(0, value0);
    }

    public void SetSlider1()
    {
        float value1 = slider[1].value;
        Model.SetBlendShapeWeight(1, value1);
    }
    //etc...

I would just do it like this - seems to work fine by matching the slider index to the blend shape weight index:


[SerializeField] Slider sliders;
[SerializeField] SkinnedMeshRenderer model;

    private void Awake()
    {
        for (int i = 0; i < sliders.Length; i++)
        {
            // Copy the value of i
            // If you were to send i directly, the delegate uses the i - but it gets incremented via the loop (its a reference)
            // Getting a value you dont want.  So we just create a local int that the delegate can reference that wont change
            int index = i;
            sliders*.onValueChanged.AddListener(delegate { SetSlider(index); });*

}
}

private void SetSlider(int index)
{
float value = sliders[index].value;
model.SetBlendShapeWeight(index, value);
}

Thanks so much!
Works perfect