public class MemberInformation
public long PrimaryIdentity;
public long DependentIdentity;
public static MemberInformation[] information = new MemberInformation[]{new MemberInformation{PrimaryIdentity = 1, DependentIdentity = 2}, new MemberInformation{PrimaryIdentity = 1, DependentIdentity = 3}, new MemberInformation{PrimaryIdentity = 1, DependentIdentity = 4}, new MemberInformation{PrimaryIdentity = 5, DependentIdentity = 6}, };
public static void Main()
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(1)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(2)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(3)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(4)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(5)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(6)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(1, true)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(2, false)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(3, false)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(4, false)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(5, true)));
Console.WriteLine("Identities {0}", string.Join(", ", GetIdentities(6, false)));
public static long[] GetIdentities(long identity)
long[] results = new long[]{0};
var defaultIdentity = information.FirstOrDefault(x => x.DependentIdentity == identity);
long primary = defaultIdentity != null ? defaultIdentity.PrimaryIdentity : identity;
results = information.Where(x => x.PrimaryIdentity == primary).Select(x => x.DependentIdentity).Union(new long[]{primary}).Distinct().ToArray();
public static long[] GetIdentities(long identity, bool isPrimary)
long[] results = new long[]{0};
results = information.Where(x => x.PrimaryIdentity == identity).Select(x => x.DependentIdentity).Union(new long[]{identity}).Distinct().ToArray();
results = information.Where(y => y.PrimaryIdentity == information.First(x => x.DependentIdentity == identity).PrimaryIdentity).Select(x => x.DependentIdentity).Union(new long[]{information.First(x => x.DependentIdentity == identity).PrimaryIdentity}).Distinct().ToArray();