Remove/Hide some of the Screen.resolutions ?

So in my game options, there is a resolution dropdown, and Unity adds a bunch of the same resolution with different refresh rates: [151523-df.png*_|151523]
(which don’t work anyway: you can choose any refresh rate and it will stay the same as the current refresh rate your monitor is set to, maybe because of vsync settings?.)
I wanted to remove or hide some of the options, keeping only 60Hz, 120Hz and 144Hz, for that I tried this:

resDropdown.options.RemoveAll(c => c.text.Contains("23Hz") || c.text.Contains("24Hz") || c.text.Contains("50Hz") || c.text.Contains("59Hz") || c.text.Contains("99Hz"));

However it seems that it only reduces the array of resolutions length, so in fact, when the dropdown displays 640x480 60Hz, the assigned resolution is 640x480 23Hz, which is the first in the array, or list in that case.
Or as there is only 3 different refresh rates for each resolution, the 4th one should be 800x600 60Hz, but the assigned resolution is 640x480 59Hz, which is the fourth in the list.

Full dropdown code:

 resolutions = Screen.resolutions;
        resDropdown.ClearOptions();

        List<string> options = new List<string>();

        int currentResIndex = 0;
            
        for (int i = 0; i < resolutions.Length; i++)
        {
            string option = resolutions<em>.width + " x " + resolutions_.height + " " + resolutions*.refreshRate +"Hz";*_</em>

options.Add(option);

if (resolutions.width == Screen.currentResolution.width && resolutions_.height == Screen.currentResolution.height && resolutions*.refreshRate == Screen.currentResolution.refreshRate)
{
currentResIndex = i;
}
}*_

resDropdown.AddOptions(options);

resDropdown.options.RemoveAll(c => c.text.Contains(“23Hz”) || c.text.Contains(“24Hz”) || c.text.Contains(“50Hz”) || c.text.Contains(“59Hz”) || c.text.Contains(“99Hz”));
_*

This is just a rough code but try something like this.

private Dictionary<int, Resolution> _resolutions = new Dictionary<int, Resolution>();
    private Dropdown _resDropdown;

    public void SetupDropdownList()
    {
        List<string> options = new List<string>();
        Resolution[] resolutions = Screen.resolutions;

        for (int i = 0; i < resolutions.Length; i++)
        {
            if (!new int[] { 23, 24, 50, 59, 99 }.Contains(resolutions*.refreshRate)) //If the refresh rate is none of the mentioned within the array, then it will add the resolution option to dropdown*

{
string option = resolutions.width + " x " + resolutions_.height + " " + resolutions*.refreshRate + “Hz”;
options.Add(option);_

_resolutions.Add(options.Count - 1, resolutions); //Adds it to dictionary with key as int and value as resolution. This would be simliarly to how it will be indexed within dropdown.
_}
}*_

_resDropdown.AddOptions(options);
_resDropdown.value = options.FindIndex(c => c.Contains(Screen.currentResolution.height.ToString()) && c.Contains(Screen.currentResolution.width.ToString()) && c.Contains(Screen.currentResolution.refreshRate.ToString()));
}

public void SetResolution(int resIndex)
{
Resolution resolution = _resolutions[resIndex];
Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
}