First, excellent work porting the NetTopologySuite to Silverlight as this will be very useful for GIS Silverlight apps.
I ran into a few issues with the NetTopologySuite Port to Silverlight that I wanted to share becuase they are causing Runtime exceptions. The issues are mainly around the porting of SortedList to Dictionary. For instance, in EdgeIntersectionList.cs:
private Dictionary<EdgeIntersection, EdgeIntersection> nodeMap = new Dictionary<EdgeIntersection, EdgeIntersection>();
public IEnumerator GetEnumerator()
nodeMap.OrderBy(x => x);
Although it appears that the expection of doing an OrderBy(x => x) is to sort the Dictionary in place, this isn't working as expecting. Changing the return to nodeMap.Values.OrderBy(x => x).GetEnumerator() appears to fix this issue in most of the places where this occurs.
Also, checking to see if a key exists in a dictionary by using  is causing other Runtime Exceptions. For instance, in EdgeIntersectionList.cs:
EdgeIntersection eiNew = new EdgeIntersection(intPt, segmentIndex, dist);
EdgeIntersection ei = (EdgeIntersection) nodeMap[eiNew];
if (ei != null)
Checking nodeMap[eiNew] will throw an exception if it does not exist rather than return null as is expected. Accessing the IsValid property of a square polygon cause some of these exceptions to occur.