Hi guys, i have a problem with Unity 2017.1
as you can see on the screen my simple testy code with
screen.resolutions isnt working 
Look in editor and Build
(Editor work properly and Build print the same resolution ~3times)
Rect winRect;
void OnGUI()
{
winRect = GUILayout.Window(0, winRect, OnWindow, "Resolutions");
}
void OnWindow(int ID)
{
GUI.DragWindow();
GUILayout.BeginVertical();
foreach (Resolution R in Screen.resolutions)
{
GUILayout.Label("Res: " + R.width + "x" + R.height, GUILayout.MinWidth(200));
}
GUILayout.EndVertical();
}
3170772–241555–ScreenResolutionBug.cs (607 Bytes)
Uh i’m not the only one ^^
Do you know how to fix it? 
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete(“Property GetResolution has been deprecated. Use resolutions instead (UnityUpgradable) → resolutions”, true)]
I think this bug appear when unity was switching method to get screen resolutions 
I literally posted a code solution in that thread 
Uh so it doesnt work for me 
Its still doing the same on the editor and the build 
Here is the code:
void Start()
{
StoreAvailableResolutions();
for (int i = 0; i < availResolutions.Length; i++)
{
ScreenResolution.options.Add(new Dropdown.OptionData() { text = availResolutions[i].width + "x" + availResolutions[i].height });
}
}
static string[] resPresentation;
static Resolution[] availResolutions;
/// <summary>
/// Caches a unique list resolutions available on the currently active display
/// </summary>
public static void StoreAvailableResolutions()
{
// process only resolutions above 1024x768
var resList = UnityEngine.Screen.resolutions;
// for some reason Unity contains duplicate entries for available resolutions so grab only unique ones
var unique = new Dictionary<string, Resolution>();
foreach (var res in resList)
{
unique[res.ToString()] = res;
}
// sort unique keys by comparing width and then height of their representative resolutions
var sortedKeys = unique.Keys.ToList();
sortedKeys.Sort((a, b) => {
int diff = unique[a].width.CompareTo(unique[b].width);
if (diff != 0) return diff;
return unique[a].height.CompareTo(unique[b].height);
});
availResolutions = new Resolution[sortedKeys.Count];
resPresentation = new string[sortedKeys.Count];
for (int i = 0; i < sortedKeys.Count; i++)
{
resPresentation[i] = sortedKeys[i];
availResolutions[i] = unique[sortedKeys[i]];
}
}
Here is screens of what it does
i read the code and it should work 
Are you sure those aren’t actually the same dimensions with different refresh rates?
Don’t use ToString() when creating the dictionary entries. Just combine width and height like you do in the dropdown