当前位置: 首页>>代码示例>>C#>>正文


C# ITable.Select方法代码示例

本文整理汇总了C#中ITable.Select方法的典型用法代码示例。如果您正苦于以下问题:C# ITable.Select方法的具体用法?C# ITable.Select怎么用?C# ITable.Select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ITable的用法示例。


在下文中一共展示了ITable.Select方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: NaturallyJoinedTable

        public NaturallyJoinedTable(ITable left, ITable right)
            : base(new[] {left, right})
        {
            leftRowCount = left.RowCount;
            rightRowCount = right.RowCount;

            // Build lookup tables for the rows in the parent tables if necessary
            // (usually it's not necessary).

            // If the left or right tables are simple enumerations, we can optimize
            // our access procedure,
            leftIsSimpleEnum = (left.GetEnumerator() is SimpleRowEnumerator);
            rightIsSimpleEnum = (right.GetEnumerator() is SimpleRowEnumerator);

            leftSet = !leftIsSimpleEnum ? left.Select(x => x.RowId.RowNumber).ToList() : null;
            rightSet = !rightIsSimpleEnum ? right.Select(x => x.RowId.RowNumber).ToList() : null;
        }
开发者ID:ArsenShnurkov,项目名称:deveeldb,代码行数:17,代码来源:NaturallyJoinedTable.cs

示例2: CheckAddConstraintViolations

        public static void CheckAddConstraintViolations(this ITransaction transaction, ITable table, ConstraintDeferrability deferred)
        {
            // Get all the rows in the table
            var rows = table.Select(x => x.RowId.RowNumber).ToArray();

            // Check the constraints of all the rows in the table.
            CheckAddConstraintViolations(transaction, table, rows, deferred);
        }
开发者ID:prepare,项目名称:deveeldb,代码行数:8,代码来源:TransactionConstraintExtensions.cs

示例3: OuterJoin

        public static ITable OuterJoin(this ITable table, ITable rightTable)
        {
            // Form the row list for right hand table,
            var rowList = rightTable.Select(x => x.RowId.RowNumber).ToList();

            int colIndex = rightTable.IndexOfColumn(table.GetResolvedColumnName(0));
            rowList = rightTable.ResolveRows(colIndex, rowList, table).ToList();

            // This row set
            var thisTableSet = table.Select(x => x.RowId.RowNumber).ToList();

            thisTableSet.Sort();
            rowList.Sort();

            // Find all rows that are in 'this table' and not in 'right'
            List<int> resultList = new List<int>(96);
            int size = thisTableSet.Count;
            int rowListIndex = 0;
            int rowListSize = rowList.Count;
            for (int i = 0; i < size; ++i) {
                int thisVal = thisTableSet[i];
                if (rowListIndex < rowListSize) {
                    int inVal = rowList[rowListIndex];
                    if (thisVal < inVal) {
                        resultList.Add(thisVal);
                    } else if (thisVal == inVal) {
                        while (rowListIndex < rowListSize &&
                               rowList[rowListIndex] == inVal) {
                            ++rowListIndex;
                        }
                    } else {
                        throw new InvalidOperationException("'this_val' > 'in_val'");
                    }
                } else {
                    resultList.Add(thisVal);
                }
            }

            // Return the new VirtualTable
            return new VirtualTable(table, resultList);
        }
开发者ID:furesoft,项目名称:deveeldb,代码行数:41,代码来源:TableQueryExtensions.cs

示例4: Join

        public static ITable Join(this ITable table, ITable otherTable, bool quick)
        {
            ITable outTable;

            if (quick) {
                // This implementation doesn't materialize the join
                outTable = new NaturallyJoinedTable(table, otherTable);
            } else {
                var tabs = new [] { table, otherTable};
                var rowSets = new IList<int>[2];

                // Optimized trivial case, if either table has zero rows then result of
                // join will contain zero rows also.
                if (table.RowCount == 0 || otherTable.RowCount == 0) {
                    rowSets[0] = new List<int>(0);
                    rowSets[1] = new List<int>(0);
                } else {
                    // The natural join algorithm.
                    List<int> thisRowSet = new List<int>();
                    List<int> tableRowSet = new List<int>();

                    // Get the set of all rows in the given table.
                    var tableSelectedSet = otherTable.Select(x => x.RowId.RowNumber).ToList();

                    int tableSelectedSetSize = tableSelectedSet.Count;

                    // Join with the set of rows in this table.
                    var e = table.GetEnumerator();
                    while (e.MoveNext()) {
                        int rowIndex = e.Current.RowId.RowNumber;
                        for (int i = 0; i < tableSelectedSetSize; ++i) {
                            thisRowSet.Add(rowIndex);
                        }

                        tableRowSet.AddRange(tableSelectedSet);
                    }

                    // The row sets we are joining from each table.
                    rowSets[0] = thisRowSet;
                    rowSets[1] = tableRowSet;
                }

                // Create the new VirtualTable with the joined tables.
                outTable = new VirtualTable(tabs, rowSets);
            }

            return outTable;
        }
开发者ID:furesoft,项目名称:deveeldb,代码行数:48,代码来源:TableQueryExtensions.cs


注:本文中的ITable.Select方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。