public int SameFlags(BlockInfo other) { return(AllFlags.Intersect(other.AllFlags).Count()); }
public int SameOtherFlags(BlockInfo other) { return(OtherFlags.Intersect(other.OtherFlags).Count()); }
public IEnumerable <BlockInfo> SimilarTo(BlockInfo block) { return(BlockInfosList.Where(i => block != i).OrderByDescending(i => i.SameObviousFlags(block) * 100 + i.SameOtherFlags(block) * 10 + (i.Group == block.Group ? 1 : 0))); }