{"action":"created","issue":{"url":"https://api.github.com/repos/bridgedotnet/Bridge/issues/962","repository_url":"https://api.github.com/repos/bridgedotnet/Bridge","labels_url":"https://api.github.com/repos/bridgedotnet/Bridge/issues/962/labels{/name}","comments_url":"https://api.github.com/repos/bridgedotnet/Bridge/issues/962/comments","events_url":"https://api.github.com/repos/bridgedotnet/Bridge/issues/962/events","html_url":"https://github.com/bridgedotnet/Bridge/issues/962","id":133790473,"number":962,"title":"Keys in dictionary are returned in sorted order","user":{"login":"DaniilVeriga","id":1510884,"avatar_url":"https://avatars.githubusercontent.com/u/1510884?v=3","gravatar_id":"","url":"https://api.github.com/users/DaniilVeriga","html_url":"https://github.com/DaniilVeriga","followers_url":"https://api.github.com/users/DaniilVeriga/followers","following_url":"https://api.github.com/users/DaniilVeriga/following{/other_user}","gists_url":"https://api.github.com/users/DaniilVeriga/gists{/gist_id}","starred_url":"https://api.github.com/users/DaniilVeriga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DaniilVeriga/subscriptions","organizations_url":"https://api.github.com/users/DaniilVeriga/orgs","repos_url":"https://api.github.com/users/DaniilVeriga/repos","events_url":"https://api.github.com/users/DaniilVeriga/events{/privacy}","received_events_url":"https://api.github.com/users/DaniilVeriga/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bridgedotnet/Bridge/labels/defect","name":"defect","color":"FF4136"}],"state":"open","locked":false,"assignee":{"login":"vladsch","id":378225,"avatar_url":"https://avatars.githubusercontent.com/u/378225?v=3","gravatar_id":"","url":"https://api.github.com/users/vladsch","html_url":"https://github.com/vladsch","followers_url":"https://api.github.com/users/vladsch/followers","following_url":"https://api.github.com/users/vladsch/following{/other_user}","gists_url":"https://api.github.com/users/vladsch/gists{/gist_id}","starred_url":"https://api.github.com/users/vladsch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vladsch/subscriptions","organizations_url":"https://api.github.com/users/vladsch/orgs","repos_url":"https://api.github.com/users/vladsch/repos","events_url":"https://api.github.com/users/vladsch/events{/privacy}","received_events_url":"https://api.github.com/users/vladsch/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/bridgedotnet/Bridge/milestones/14","html_url":"https://github.com/bridgedotnet/Bridge/milestones/1.11","labels_url":"https://api.github.com/repos/bridgedotnet/Bridge/milestones/14/labels","id":1429604,"number":14,"title":"1.11","description":"","creator":{"login":"geoffreymcgill","id":62210,"avatar_url":"https://avatars.githubusercontent.com/u/62210?v=3","gravatar_id":"","url":"https://api.github.com/users/geoffreymcgill","html_url":"https://github.com/geoffreymcgill","followers_url":"https://api.github.com/users/geoffreymcgill/followers","following_url":"https://api.github.com/users/geoffreymcgill/following{/other_user}","gists_url":"https://api.github.com/users/geoffreymcgill/gists{/gist_id}","starred_url":"https://api.github.com/users/geoffreymcgill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geoffreymcgill/subscriptions","organizations_url":"https://api.github.com/users/geoffreymcgill/orgs","repos_url":"https://api.github.com/users/geoffreymcgill/repos","events_url":"https://api.github.com/users/geoffreymcgill/events{/privacy}","received_events_url":"https://api.github.com/users/geoffreymcgill/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":179,"state":"open","created_at":"2015-11-25T15:51:05Z","updated_at":"2016-02-21T14:12:30Z","due_on":"2016-02-16T07:00:00Z","closed_at":null},"comments":5,"created_at":"2016-02-15T18:49:11Z","updated_at":"2016-02-22T09:20:35Z","closed_at":null,"body":"http://forums.bridge.net/forum/bridge-net-pro/bugs/1559"},"comment":{"url":"https://api.github.com/repos/bridgedotnet/Bridge/issues/comments/187086861","html_url":"https://github.com/bridgedotnet/Bridge/issues/962#issuecomment-187086861","issue_url":"https://api.github.com/repos/bridgedotnet/Bridge/issues/962","id":187086861,"user":{"login":"fabriciomurta","id":10730372,"avatar_url":"https://avatars.githubusercontent.com/u/10730372?v=3","gravatar_id":"","url":"https://api.github.com/users/fabriciomurta","html_url":"https://github.com/fabriciomurta","followers_url":"https://api.github.com/users/fabriciomurta/followers","following_url":"https://api.github.com/users/fabriciomurta/following{/other_user}","gists_url":"https://api.github.com/users/fabriciomurta/gists{/gist_id}","starred_url":"https://api.github.com/users/fabriciomurta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabriciomurta/subscriptions","organizations_url":"https://api.github.com/users/fabriciomurta/orgs","repos_url":"https://api.github.com/users/fabriciomurta/repos","events_url":"https://api.github.com/users/fabriciomurta/events{/privacy}","received_events_url":"https://api.github.com/users/fabriciomurta/received_events","type":"User","site_admin":false},"created_at":"2016-02-22T09:20:35Z","updated_at":"2016-02-22T09:20:35Z","body":"I think the internal ordering should not be considered or tagged as a defect if we are talking about Dictionary. It is meant to be fast and to get the keys the fastest way possible in the current language implementation. To attain best performance different hash algorithms may be used to the dictionary, depending on the language, and this may or may not include sorting in the process.\r\n\r\nA sorted list indicates that recovering entries should be pretty fast as when searching the list, given the current element, the program can know whether to go forward or backwards looking for the desired one. Probably in c# the hashset implementation used by dictionaries (I didn't look at it in detail) uses some level of sorting in their hash chunks. It just happened that in JavaScript the array itself is sorted in favor of the dictionary.\r\n\r\nThat said I believe this only should be considered for fixing or review/improving if the current implementation is arguably slow. The list being ordered in the case does not suggest a bad organization or unnecessary overhead though, but the other way around. And given the performance of JavaScript can be much slower than a compiled C# application due to its interpreted nature, it is not enough to just prove C# uses a different approach on dictionary, cause it probably can simply not fit the JavaScript structure. One way to prove the current dictionary implementation is slow could be with another JavaScript dictionary implementation. I don't think this has ever been the point of this issue though.\r\n\r\nI'm just sharing my opinion on the issue."}}