| File: Data\IRowSeekable.cs | Web Access |
| Project: src\src\Microsoft.ML.Data\Microsoft.ML.Data.csproj (Microsoft.ML.Data) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; namespace Microsoft.ML.Data { // REVIEW: Would it be a better approach to add something akin to CanSeek, // as we have a CanShuffle? The idea is trying to make IRowSeekable propagate along certain transforms. /// <summary> /// Represents a data view that supports random access to a specific row. /// </summary> [BestFriend] internal interface IRowSeekable { RowSeeker GetSeeker(Func<int, bool> predicate); DataViewSchema Schema { get; } } /// <summary> /// Represents a row seeker with random access that can retrieve a specific row by the row index. /// For <see cref="RowSeeker"/>, when the state is valid (that is when <see cref="MoveTo(long)"/> /// returns <see langword="true"/>), it returns the current row index. Otherwise it's -1. /// </summary> [BestFriend] internal abstract class RowSeeker : DataViewRow { /// <summary> /// Moves the seeker to a row at a specific row index. /// If the row index specified is out of range (less than zero or not less than the /// row count), it returns false and sets its Position property to -1. /// </summary> /// <param name="rowIndex">The row index to move to.</param> /// <returns>True if a row with specified index is found; false otherwise.</returns> public abstract bool MoveTo(long rowIndex); } }