If all the counties are in OSM, it is almost certain they came from some other machine readable source, and it would be better to use that source directly. Otherwise expect there to be gaps. This looks a likely good starting point: http://www.usgs.gov/science/cite-view.php?cite=528
You’ve already been told about overpass. If C# can issue HTTP GETs, and parse XML responses, it should be able to obtain whatever data is available in OSM. You will need to write suitable code to interpret the XML document object models. My guess is that little work has been done in MS .NET tools for this.
“The Overpass API has been developed to perform read-only queries to the Openstreetmap database, using a powerful and flexible language known as Overpass QL. This post illustrates the syntax of this language with sample queries.”
Are there examples to show how to call overpass API from C# ?
Or, are there other APIs that can be called from C# to get data from OSM ?
Did you try it? may be.
Did you ask me how to do it? No
Activate one state, right mouse, “select next admin level”, export and one state is done.
After that “deselect all children” and deactivate state. Goto next state.
Please don’t do that for more that 2-3 states in one export, because you will kill my server and i’ll have to block your account. If the spinning glass does not finish after about 60 seconds, stop and export.
The OSM county and state boundaries have all been ‘joined’ from what I have seen. There will always be a question of what is most accurate, but the OSM state and boundaries have been cleaned up, and in some cases the boundaries have been updated to follow physical features where it is known that those features define the boundary.