I have 2 object's let's call them A, B and method
List<B> DoSomething(ref A a, List<B> b)
{
List<B> newList = new List<B>();
//
//Doing something to ref A
//
foreach(var elementOfB in b.where(...))
{
//
elementOfB.Name = "...";
//
newList.Add(elementOfB);
}
return newList;
}
So, after that method is done my original list b have changed value Name field (string) but I did not pass it as ref and I'm using where that should return copy of elemens right? So my question is why my list b changed it's values?
List<B> originalList = ...;
List<B> newList = DoSomething(ref a, originalList);
//now originalList have changed Name field values