Probably more of a subjective, stylistic issue, but I believe instead of returning null, it should return an empty initialized array.
I believe it makes for cleaner code
foreach (Node child in obj.ListNodes(...)){ //do something (if needed)} instead of:
if ( (Node[] children = objListNodes(...)) != null){for (int i = 0 ; i<children.length ; i++){//do something}} **Edit
Actually I guess any method that returns an array will probably have this behaviour.