Recently, I have been doing a lot of conversions List<SomeType> β SomeType[] , especially when I filter or expand arrays.
For example, filtering:
// filter the list var memberList = new List<MemberType>(); foreach (var member in members) { if (member.someProperty != sentinalValue) { memberList.Add(member); } } // overwrite the old array with a new on dimensioned correctly members = new MemberType[memberList.Count]; memberList.CopyTo(members);
or extension:
// create the new member var newMember = new MemeberType(); // create a new array to hold the extended members newMembers = new MemberType[members.Length + 1]; // copy over the old members members.CopyTo(newMembers, 0); // add the new member newMembers[members.Length] = newMember; // overwrite old array with new array containing new member members = newMembers;
I need to use arrays (MemberType []) instead of a nice generic collection due to the XML serialization classes used. I am sure there is a better way to do this simply, so if you know one (which does not add unnecessary complexity), let me know.
source share