{"action":"closed","issue":{"url":"https://api.github.com/repos/dotnet/corefx/issues/2254","repository_url":"https://api.github.com/repos/dotnet/corefx","labels_url":"https://api.github.com/repos/dotnet/corefx/issues/2254/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/2254/comments","events_url":"https://api.github.com/repos/dotnet/corefx/issues/2254/events","html_url":"https://github.com/dotnet/corefx/issues/2254","id":93367661,"number":2254,"title":"Provide ways to parse sections of a string, not an entire string.","user":{"login":"CyrusNajmabadi","id":4564579,"avatar_url":"https://avatars.githubusercontent.com/u/4564579?v=3","gravatar_id":"","url":"https://api.github.com/users/CyrusNajmabadi","html_url":"https://github.com/CyrusNajmabadi","followers_url":"https://api.github.com/users/CyrusNajmabadi/followers","following_url":"https://api.github.com/users/CyrusNajmabadi/following{/other_user}","gists_url":"https://api.github.com/users/CyrusNajmabadi/gists{/gist_id}","starred_url":"https://api.github.com/users/CyrusNajmabadi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CyrusNajmabadi/subscriptions","organizations_url":"https://api.github.com/users/CyrusNajmabadi/orgs","repos_url":"https://api.github.com/users/CyrusNajmabadi/repos","events_url":"https://api.github.com/users/CyrusNajmabadi/events{/privacy}","received_events_url":"https://api.github.com/users/CyrusNajmabadi/received_events","type":"User","site_admin":false},"labels":[{"id":153714228,"url":"https://api.github.com/repos/dotnet/corefx/labels/api-needs-work","name":"api-needs-work","color":"207de5","default":false},{"id":174276033,"url":"https://api.github.com/repos/dotnet/corefx/labels/area-System.Runtime","name":"area-System.Runtime","color":"d4c5f9","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dotnet/corefx/milestones/5","html_url":"https://github.com/dotnet/corefx/milestones/Future","labels_url":"https://api.github.com/repos/dotnet/corefx/milestones/5/labels","id":1328080,"number":5,"title":"Future","description":"Milestone tracking the issues triaged for an unspecified future release","creator":{"login":"joshfree","id":1302850,"avatar_url":"https://avatars.githubusercontent.com/u/1302850?v=3","gravatar_id":"","url":"https://api.github.com/users/joshfree","html_url":"https://github.com/joshfree","followers_url":"https://api.github.com/users/joshfree/followers","following_url":"https://api.github.com/users/joshfree/following{/other_user}","gists_url":"https://api.github.com/users/joshfree/gists{/gist_id}","starred_url":"https://api.github.com/users/joshfree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshfree/subscriptions","organizations_url":"https://api.github.com/users/joshfree/orgs","repos_url":"https://api.github.com/users/joshfree/repos","events_url":"https://api.github.com/users/joshfree/events{/privacy}","received_events_url":"https://api.github.com/users/joshfree/received_events","type":"User","site_admin":false},"open_issues":646,"closed_issues":370,"state":"open","created_at":"2015-09-29T00:25:45Z","updated_at":"2016-11-15T19:55:05Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-07-06T20:18:03Z","updated_at":"2016-11-15T19:55:05Z","closed_at":"2016-11-15T19:55:05Z","body":"Right now .Net provides lots of ways to convert strings to other values.  For example `Int32.TryParse`.  This is fine if you are starting with a string, but it's very suboptimal if you have a larger string, and are trying to parse out a piece of it.  You are forced to first create a substring, and then parse that.  This adds GC pressure to the system and can be a large perf impact.\n\nIt would be very beneficial to have overloads of these functions that took a start+length.  Alternatively, if there were some sort of struct representing a piece of a string, that could also work as well.  \n\nRight now this impacts TypeScript greatly.  We have to marshal data from JavaScript to .Net.  This comes in as a string to us, which we then need to parse out into actual values (like ints).  We are forced to either send tons of strings over (not ideal), or send one big string over that we then are forced to break into tons of small strings.\n\nRight now we've worked around this by hand-writing our own Int32.Parse that can work on subsections of a string.  But this is non-ideal and would really be served inside the runtime so everyone could benefit.  This is a place where really ony the runtime could implement this thing.  There is so much complexity around string parsing (even just for ints), with things like FormatSpecifiers and whatnot, that trying to duplicate it in another library would be unfeasible.\n"}}
{"actor":{"display_login":"danmosemsft"}}