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())); }
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}"); }
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"); }
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(); }
public IEnumerable <TEntity> Load <TParameter>(SelectMany <TEntity> query, TParameter values) { var command = getParameterCommand <TParameter>(query); command.SetParameters(values); return(select(command)); }
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); }
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()); }
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()); }
private void OnStoresSelected(SelectMany <Store> f) { if (SelectManyModule.hasChanges(f)) { var msg = FormMessage.NewStoresSetAllAvailability(f.Selected); Process(msg); } }
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"); }
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));
public IObservable <T> Visit <I>(SelectMany <T, I> selectMany) => Adapter.Get(selectMany.Input).SelectMany(selectMany.Func);
public Aliq.Void Visit <I>(SelectMany <T, I> selectMany) { DataBinding.Set(selectMany.Input, ObjectId + "_s"); return(new Aliq.Void()); }
ChangeResult(SelectMany(query),
public Aliq.Void Visit <I>(SelectMany <T, I> selectMany) { Node.Save(Id, Node.GetSelectMany(selectMany)); return(new Aliq.Void()); }
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(); }
public IEnumerable <T> Visit <I>(SelectMany <T, I> selectMany) => Node.GetSelectMany(selectMany);
public IEnumerable <T> Visit <I>(SelectMany <T, I> selectMany) { return(InMemory .Get(selectMany.Input) .SelectMany(selectMany.Func)); }
public IEnumerable <TEntity> Load(SelectMany <TEntity> query) { var command = getCommand(query); return(select(command)); }