public GangMemberCollection RemoveMember(IGangMember member) { if (member == HostMember) { return(OtherMembers.Any() ? new GangMemberCollection(OtherMembers[0], OtherMembers.Skip(1)) : null); } return(new GangMemberCollection(HostMember, OtherMembers.Remove(member))); }
public GangMemberCollection( IGangMember hostMember = null, IEnumerable <IGangMember> otherMembers = null) { HostMember = hostMember; OtherMembers = otherMembers == null ? ImmutableArray <IGangMember> .Empty : otherMembers.ToImmutableArray(); Members = HostMember == null ? OtherMembers : OtherMembers.Add(HostMember); }
public GangMemberCollection AddMember(IGangMember member) { if (Members.Any(m => m.Id.SequenceEqual(member.Id))) { throw new Exception("Member exists"); } if (HostMember == null) { return(new GangMemberCollection(member)); } return(new GangMemberCollection(HostMember, OtherMembers.Add(member))); }