public List<ulong> GetAllConnections3(params ulong[] linksToConnect) { return _sync.ExecuteReadOperation(() => { var results = new BitString((long)_links.Total + 1); // new BitArray((int)_links.Total + 1); if (linksToConnect.Length > 0) { EnsureEachLinkExists(_links, linksToConnect); var collector1 = new AllUsagesCollector2(_links, results); collector1.Collect(linksToConnect[0]); for (int i = 1; i < linksToConnect.Length; i++) { var next = new BitString((long)_links.Total + 1); //new BitArray((int)_links.Total + 1); var collector = new AllUsagesCollector2(_links, next); collector.Collect(linksToConnect[i]); results = results.And(next); } } return results.GetSetUInt64Indices(); }); }