本文整理汇总了C#中ITable.SelectRows方法的典型用法代码示例。如果您正苦于以下问题:C# ITable.SelectRows方法的具体用法?C# ITable.SelectRows怎么用?C# ITable.SelectRows使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITable
的用法示例。
在下文中一共展示了ITable.SelectRows方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SelectRowsNotIn
/// <summary>
/// This implements the <c>not in</c> command.
/// </summary>
/// <param name="table"></param>
/// <param name="other"></param>
/// <param name="col1"></param>
/// <param name="col2"></param>
/// <remarks>
/// <b>Issue</b>: This will be less efficient than <see cref="SelectRowsIn(ITable,ITable,int,int)">in</see>
/// if <paramref name="table"/> has many rows and <paramref name="other"/> has few rows.
/// </remarks>
/// <returns></returns>
public static IEnumerable<int> SelectRowsNotIn(this ITable table, ITable other, int col1, int col2)
{
// Handle trivial cases
int t2RowCount = other.RowCount;
if (t2RowCount == 0)
// No rows so include all rows.
return table.SelectAllRows(col1);
if (t2RowCount == 1) {
// 1 row so select all from table1 that doesn't equal the value.
var en = other.GetEnumerator();
if (!en.MoveNext())
throw new InvalidOperationException("Cannot iterate through table rows.");
var cell = other.GetValue(en.Current.RowId.RowNumber, col2);
return table.SelectRows(col1, SqlExpressionType.NotEqual, cell);
}
// Iterate through table1's column. If we can find identical cell in the
// tables's column, then we should not include the row in our final
// result.
List<int> resultRows = new List<int>();
foreach (var row in table) {
int rowIndex = row.RowId.RowNumber;
var cell = row.GetValue(col1);
var selectedSet = other.SelectRows(col2, SqlExpressionType.Equal, cell);
// We've found a row in table1 that doesn't have an identical cell in
// other, so we should include it in the result.
if (!selectedSet.Any())
resultRows.Add(rowIndex);
}
return resultRows;
}