private static Dictionary <string, List <Element> > GetElements(Document doc)
 {
     return(new FilteredElementCollector(doc).WhereElementIsNotElementType()
            .WhereElementIsViewIndependent()
            .OfCategory(BuiltInCategory.OST_PipeFitting)
            .OfClass(typeof(FamilyInstance))
            .Cast <FamilyInstance>()
            .Where(i => i.Name.Equals("ГОСТ 10704-91 Трубы стальные электросварные прямошовные") && i.Symbol.FamilyName.Equals("801_СварнойШов_ОБЩИЙ"))
            .SelectMany(e => e.MEPModel.ConnectorManager.Connectors.Cast <Connector>(), (e, connector) => (familyInstance: e, connector))
            .SelectMany(t => t.connector.AllRefs.Cast <Connector>(), (familyInstance, reference) => (familyInstance, reference))
            .Where(
                t => t.reference.Owner.Name.StartsWith("Азот_") ||
                t.reference.Owner.Name.StartsWith("Вода_") ||
                t.reference.Owner.Name.StartsWith("Газ_") ||
                t.reference.Owner.Name.StartsWith("Дренаж_") ||
                t.reference.Owner.Name.StartsWith("Канализация_") ||
                t.reference.Owner.Name.StartsWith("Нефтепродукты_") ||
                t.reference.Owner.Name.StartsWith("Пенообразователь_") ||
                t.reference.Owner.Name.StartsWith("ХимическиеРеагенты_"))
            .Select(t => (t.familyInstance.familyInstance, t.reference.Owner))
            .SelectMany(
                e => e.familyInstance.MEPModel.ConnectorManager.Connectors.Cast <Connector>(),
                (e, connector) => (familyInstance: e.familyInstance, connector, Owner: e.Owner))
            .SelectMany(t => t.connector.AllRefs.Cast <Connector>(), (t, reference) => (InstanceConnectorOwnerTuple: t, reference))
            .Where(
                t => (t.reference.Owner.Category.Id.IntegerValue == (int)BuiltInCategory.OST_PipeFitting) &&
                !t.reference.Owner.Name.Equals("ГОСТ 10704-91 Трубы стальные электросварные прямошовные"))
            .GroupBy(e => e.InstanceConnectorOwnerTuple.Owner.Name, e => e.reference.Owner)
            .ToDictionary(e => e.Key, e => e.ToList()));
 }
Ejemplo n.º 2
0
        public void ChooseCoeffsBruteForce()
        {
            var res             = new List <(int, int, int, double, double)>();
            var depth           = Enumerable.Range(5, 30);
            var flagsTaken      = Enumerable.Range(1000, 2000);
            var distc           = Enumerable.Range(1, 10);
            var nextFlag        = Enumerable.Range(0, 5).Select(x => x * 0.5);
            var allCombinations = depth
                                  .SelectMany(d => flagsTaken, (d, f) => (d, f))
                                  .SelectMany(df => distc, (df, dis) => (df.d, df.f, dis))
                                  .SelectMany(dfdis => nextFlag, (dfdis, n) => (dfdis.d, dfdis.f, dfdis.dis, n));

            foreach (var tup in allCombinations.Take(500))
            {
                var score = CalculateScore1(tup.d, tup.f, tup.dis, tup.n);
                res.Add((tup.d, tup.f, tup.dis, tup.n, score));
            }

            var bestCoeff = res
                            .OrderBy(p => p.Item5)
                            .First();

            Console.WriteLine($"depth {bestCoeff.Item1} flags {bestCoeff.Item2}" +
                              $" dist {bestCoeff.Item3} nextbonus {bestCoeff.Item4} score {bestCoeff.Item5}");
        }
Ejemplo n.º 3
0
 public static void Question4()
 {
     Console.WriteLine("Question 4 answer : " +
                       Enumerable.Range(0, 3)
                       .Select((x, i) => (index: i, range: Enumerable.Range(0, 3)))
                       .SelectMany(t => t.range, (t, n) => (index: t.index, number: n))
                       .Aggregate("", (acc, c) => acc + c.index + "," + c.number + " | ") + "\n");
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var lines = File.ReadAllLines(args.FirstOrDefault() ?? "input.txt").ToArray();

            var   space = new Dictionary <Coord, char>();
            Coord min   = new Coord(0, 0, 0, 0);
            Coord max   = new Coord(lines[0].Length - 1, lines.Length - 1, 0, 0);

            for (int y = 0; y < lines.Length; y++)
            {
                for (int x = 0; x < lines[y].Length; x++)
                {
                    if (lines[y][x] == '#')
                    {
                        space[new Coord(x, y, 0, 0)] = lines[y][x];
                    }
                }
            }

            Display(min, max, space);

            var l = new[] { -1, 0, 1 };

            neighbours = l.SelectMany(y => l, (x, y) => (x, y))
                         .SelectMany(z => l, (a, z) => (a.x, a.y, z))
                         .SelectMany(w => l, (a, w) => (a.x, a.y, a.z, w))
                         .Where(c => !(c.x == 0 && c.y == 0 && c.z == 0 && c.w == 0)).Select(c => new Coord(c.x, c.y, c.z, c.w)).ToArray();

            Coord curmin = new Coord(min.x, min.y, min.z, min.w);
            Coord curmax = new Coord(max.x, max.y, max.z, max.w);
            Dictionary <Coord, char> curspace = space;

            for (int i = 1; i <= 6; i++)
            {
                Console.WriteLine($"Iteration {i}");
                curspace = Iterate(ref curmin, ref curmax, curspace);
                Display(curmin, curmax, curspace);
            }
            Console.WriteLine($"Total={curspace.Count(x=>x.Value=='#')}");

            curmin   = new Coord(min.x, min.y, min.z, min.w);
            curmax   = new Coord(max.x, max.y, max.z, max.w);
            curspace = space;
            for (int i = 1; i <= 6; i++)
            {
                Console.WriteLine($"Iteration {i}");
                curspace = Iterate4(ref curmin, ref curmax, curspace);
                //Display(curmin,curmax,curspace);
            }
            Console.WriteLine($"Total 4={curspace.Count(x=>x.Value=='#')}");
        }
            public override void OnNext(TSource value)
            {
                IObservable <TResult> nextObservable;

                try {
                    nextObservable = parent.selector(value);
                }
                catch (Exception ex) {
                    try {
                        observer.OnError(ex);
                    }
                    finally {
                        Dispose();
                    }

                    ;
                    return;
                }

                var disposable = new SingleAssignmentDisposable();

                collectionDisposable.Add(disposable);
                var collectionObserver = new SelectMany(this, disposable);

                disposable.Disposable = nextObservable.Subscribe(collectionObserver);
            }
        public MainWindow()
        {
            var a = new[] { 1, 2, 3, 4, 4, 4 };
            var b = new[] { 1, 3, 4 };

            var source = new ObservableCollection <int>();

            GC.Collect(2, GCCollectionMode.Forced, true);
            var any = source.ToActiveList().ActiveAny();

            GC.Collect(2, GCCollectionMode.Forced, true);
            source.Add(0);

            Source = new ObservableCollection <TestData>();
            Source.Add(new TestData(1, "One", "Abc"));
            Source.Add(new TestData(2, "Two", "Def"));
            Source.Add(new TestData(3, "Three", "Ghi"));

            var activeList = (Source as IList <TestData>).ToActiveList();

            Data = activeList.ActiveWhere(o => o.One % 2 == 0).ActiveSelect(o => $"{o.One} - {o.Two}");

            Data.ToActiveValue(s => (s as IReadOnlyList <string>).Count);

            Combined = activeList.ActiveSelect(x => $"{x.One} - {x.Two}").ActiveConcat(Data).ActiveOrderBy(s => s);

            SelectMany = activeList.ActiveSelectMany(x => x.Three).ActiveReverse().ActiveSkip(2).ActiveTake(8);

            SelectManyCount = SelectMany.ToActiveValue(l => l.Count);

            InitializeComponent();
        }
Ejemplo n.º 7
0
        public IEnumerable <TEntity> Load <TParameter>(SelectMany <TEntity> query, TParameter values)
        {
            var command = getParameterCommand <TParameter>(query);

            command.SetParameters(values);
            return(select(command));
        }
Ejemplo n.º 8
0
            public override void OnNext(TSource value)
            {
                UniRx.IObservable <TResult> observable;
                try
                {
                    observable = parent.selector(value);
                }
                catch (Exception error)
                {
                    try
                    {
                        base.observer.OnError(error);
                    }
                    finally
                    {
                        Dispose();
                    }
                    return;
                }
                SingleAssignmentDisposable singleAssignmentDisposable = new SingleAssignmentDisposable();

                collectionDisposable.Add(singleAssignmentDisposable);
                SelectMany observer = new SelectMany(this, singleAssignmentDisposable);

                singleAssignmentDisposable.Disposable = observable.Subscribe(observer);
            }
Ejemplo n.º 9
0
        private string build <TEntity>(SelectMany <TEntity> selectQuery)
        {
            var table = _tableResolver.Resolve <TEntity>();
            var query = selectQuery.Query;


            var strb = new StringBuilder();

            strb.Append("SELECT ");
            append(strb, table.Columns);

            strb.Append(" FROM ").AppendSql(table);

            if (query.Where != null)
            {
                strb.Append(" WHERE ").AppendSql(query.Where);
            }

            if (query.SkipCount != null || query.TakeCount != null)
            {
                strb.Append(" OFFSET ").Append(query.SkipCount ?? 0).Append(" ROWS");
            }
            if (query.TakeCount != null)
            {
                strb.Append(" FETCH NEXT ").Append(query.TakeCount.Value).Append(" ROWS ONLY");
            }

            return(strb.ToString());
        }
Ejemplo n.º 10
0
        private string build <TEntity>(SelectMany <TEntity> selectQuery)
        {
            var table = _tableResolver.Resolve <TEntity>();
            var query = selectQuery.Query;

            if (query.TakeCount == null && query.SkipCount != null)
            {
                throw new InvalidOperationException("SQLite is not Support (TakeCount == null && SkipCount != null)");
            }

            var strb = new StringBuilder();

            strb.Append("SELECT ");
            append(strb, table.Columns);

            strb.Append(" FROM ").AppendSql(table);

            if (query.Where != null)
            {
                strb.Append(" WHERE ").AppendSql(query.Where);
            }

            if (query.TakeCount != null)
            {
                strb.Append(" LIMIT ").Append(query.TakeCount.Value);
                if (query.SkipCount != null)
                {
                    strb.Append(" OFFSET ").Append(query.SkipCount.Value);
                }
            }

            return(strb.ToString());
        }
Ejemplo n.º 11
0
 private void OnStoresSelected(SelectMany <Store> f)
 {
     if (SelectManyModule.hasChanges(f))
     {
         var msg = FormMessage.NewStoresSetAllAvailability(f.Selected);
         Process(msg);
     }
 }
Ejemplo n.º 12
0
        public static void Question8()
        {
            int    boardSize = 8;
            string str       = "c6";
            var    l         = new List <int>()
            {
                Convert.ToInt32(str[0] - 'a' + 1), Convert.ToInt32(str[1].ToString())
            };

            var joinedMoves = Enumerable.Range(1, boardSize)
                              .Select((r, i) => (i, Enumerable.Range(1, boardSize)))
                              .SelectMany(s => s.Item2, (s, i) => (x: s.i + 1, y: i))
                              .Where(i => Math.Abs(i.x - l[0]) == Math.Abs(i.y - l[1]));

            foreach (var item in joinedMoves)
            {
                Console.Write($"({Convert.ToChar('a' + item.x - 1)},{item.y}) | ");
            }
            Console.WriteLine("\n");
        }
Ejemplo n.º 13
0
 public static State <TState, TResult> Select <TState, TSource, TResult>(
     this State <TState, TSource> source,
     Func <TSource, TResult> selector) => SelectMany <TState, TSource, TResult>(source, value => state => (selector(value), state));
Ejemplo n.º 14
0
 public IObservable <T> Visit <I>(SelectMany <T, I> selectMany)
 => Adapter.Get(selectMany.Input).SelectMany(selectMany.Func);
Ejemplo n.º 15
0
 public Aliq.Void Visit <I>(SelectMany <T, I> selectMany)
 {
     DataBinding.Set(selectMany.Input, ObjectId + "_s");
     return(new Aliq.Void());
 }
Ejemplo n.º 16
0
 ChangeResult(SelectMany(query),
Ejemplo n.º 17
0
 public Aliq.Void Visit <I>(SelectMany <T, I> selectMany)
 {
     Node.Save(Id, Node.GetSelectMany(selectMany));
     return(new Aliq.Void());
 }
Ejemplo n.º 18
0
        public void ShowExample_Click(object sender, EventArgs e)
        {
            Form form = null;

            switch (((Button)sender).Name)
            {
            // LINQ Dynamic | Restriction Operators
            case "uiROWhere":
                form = new Where();
                break;

            // LINQ Dynamic | Projection Operators
            case "uiPOSelect":
                form = new Select();
                break;

            case "uiPOSelectMany":
                form = new SelectMany();
                break;

            // LINQ Dynamic | Aggregate Operators
            case "uiAOMin":
                form = new Min();
                break;

            case "uiAOMax":
                form = new Max();
                break;

            case "uiAOSum":
                form = new Sum();
                break;

            case "uiAOCount":
                form = new Count();
                break;

            case "uiAOAverage":
                form = new Average();
                break;

            case "uiAOAggregate":
                form = new Aggregate();
                break;

            // LINQ Dynamic | Query Execution
            case "uiQEDeferredExecution":
                form = new DeferredExecution();
                break;

            case "uiQEQueryReuse":
                form = new QueryReuse();
                break;

            case "uiQEImmediateExecution":
                form = new ImmediateExecution();
                break;


            // LINQ Dynamic |  Join Operators
            case "uiJOCrossJoin":
                form = new CrossJoin();
                break;

            case "uiJOGroupJoin":
                form = new GroupJoin();
                break;

            case "uiJOCrossWithGroupJoin":
                form = new CrossJoinwithGroupJoin();
                break;

            case "uiJOLeftOuterJoin":
                form = new LeftOuterJoin();
                break;

            // LINQ Dynamic |    Set Operators
            case "uiSODistinct":
                form = new Distinct();
                break;

            case "uiSOExcept":
                form = new Except();
                break;

            case "uiSOIntersect":
                form = new Intersect();
                break;

            case "uiSOUnion":
                form = new Union();
                break;

            // LINQ Dynamic |    Element Operators
            case "uiEOElementAt":
                form = new ElementAt();
                break;

            case "uiEOFirst":
                form = new First();
                break;

            case "uiEOFirstDefault":
                form = new FirstOrDefault();
                break;

            // LINQ Dynamic |    Custom Sequence Operators
            case "uiCSOCombine":
                form = new Combine();
                break;

            // LINQ Dynamic |    Quantifiers
            case "uiQuantifiersAll":
                form = new All();
                break;

            case "uiQuantifiersAny":
                form = new Any();
                break;

            // LINQ Dynamic |    Grouping Operators
            case "uiGOGroupBy":
                form = new GroupBy();
                break;

            // LINQ Dynamic |    Miscellaneous Operators
            case "uiMOConcat":
                form = new Concat();
                break;

            case "uiMOEqualAll":
                form = new EqualAll();
                break;


            // LINQ Dynamic |    Generation Operators
            case "uiGORepeat":
                form = new Repeat();
                break;

            case "uiGORange":
                form = new Range();
                break;


            // LINQ Dynamic |    Ordering Operators
            case "uiOOOrderBy":
                form = new OrderBy();
                break;

            case "uiOOThenBy":
                form = new ThenBy();
                break;

            case "uiOOThenByDescending":
                form = new ThenByDescending();
                break;

            case "uiOOOrderByDescending":
                form = new OrderByDescending();
                break;

            case "uiOOReverse":
                form = new Reverse();
                break;

            // LINQ Dynamic |    Conversion Operators
            case "uiCOOfType":
                form = new OfType();
                break;

            case "uiCOToArray":
                form = new ToArray();
                break;

            case "uiCOToDictionary":
                form = new ToDictionary();
                break;

            case "uiCOToList":
                form = new ToList();
                break;


            // LINQ Dynamic |    Partitioning Operators
            case "uiPOTake":
                form = new Take();
                break;

            case "uiPOTakeWhile":
                form = new TakeWhile();
                break;

            case "uiPOSkip":
                form = new Skip();
                break;

            case "uiPOSkipWhile":
                form = new SkipWhile();
                break;
            }

            form.StartPosition = FormStartPosition.CenterParent;
            form.ShowDialog();
        }
Ejemplo n.º 19
0
 public IEnumerable <T> Visit <I>(SelectMany <T, I> selectMany)
 => Node.GetSelectMany(selectMany);
Ejemplo n.º 20
0
 public IEnumerable <T> Visit <I>(SelectMany <T, I> selectMany)
 {
     return(InMemory
            .Get(selectMany.Input)
            .SelectMany(selectMany.Func));
 }
Ejemplo n.º 21
0
        public IEnumerable <TEntity> Load(SelectMany <TEntity> query)
        {
            var command = getCommand(query);

            return(select(command));
        }