Bill, doQuery() does not have 250 max rows limit. And if you want to use doSelect(), then you would need to -1 for maxRows argument. Here is something that may help you start...
ListResult allContacts;
allContacts = ws.doQuery(SID, "cnt", "");
string[] attrs = { "last_name", "first_name", "middle_name" };
string node = ws.getListValues(SID, allContacts.listHandle, 0, -1, attrs);
ArrayList sdmObjects = getUDSObjects(node);
for (int i = 0; i < sdmObjects.Count; i++)
{
...
}
Thanks _Chi