Thanks for the thoughts guys.
What I was trying to do was to search a list for specific set of items, collect this subset to a list, and return that list. Then perform specific actions on that returned subset, with the subset being references. So I could then just update the subset and the main list it was collected from would update as well.
I wanted to put this in a function of its own as I need the same subset in different places. I ended up copy-pasting the code to create the subset in several places.
Traverse a graph, collect some path based on given criteria. Return that path. Have updates to returned set/path also directly applied to the graph itself.
Not quite sure where you guys headed with the variable returns stuff. I pass in a list, pull in subset from that list, return that subset. I don't know a programming language where you cannot return a variable from a function/method? Well I guess you have some C# magic there, never did that myself..