在 C# CollectionViewSource 中定位一条记录

Locate a record in a C# CollectionViewSource

我有一个 CollectionViewSource,它包含一组从 MS SQL 服务器 Table 中提取的索引记录,称为使用 Entity framework 6.2.

的示例

示例被声明为我的 DbContext class 的 DbSet 属性 即:

public virtual DbSet<Example> Examples { get; set; }  

我的 CollectionViewSource 是:

CollectionViewSource exampleViewSource;

我可以在集合中四处移动并使用以下示例计算它包含的记录数:

int selectedRecordPosition = exampleViewSource.View.CurrentPosition;
exampleViewSource.View.MoveCurrentToPrevious();
int numberOfRecordsInCollectionView = exampleViewSource.View.SourceCollection.Cast<Example>().Count(); 

如何找到集合中的特定记录并将其设置为记录指针的当前位置?

我正在寻找类似的东西:

    var selectedObject = exampleViewSource.View.SourceCollection.Find(key1, key2);   // example pseudo code.        
    exampleViewSource.View.MoveCurrentTo(selectedObject);

key1 和 key2 是示例表行的主访问键。

有人可以帮忙吗?

BionicCode 提供了我的问题的解决方案,但肯定有人删除了它。 根据 BionicCode 的回答,我编码了......

Example selectedObject = exampleViewSource.View.SourceCollection.Cast<Example>()
                         .Where(selectedRecord =>
                          selectedRecord.Column1Name == key1 && 
                          selectedRecord.Column2Name == key2)
                         .FirstOrDefault();
if (selectedObject == null) break;
exampleViewSource.View.MoveCurrentTo(selectedObject);

唯一的区别是 BionicCode 没有使用 Cast,而且他的 post 在我完全跟上之前就消失了。 无论如何,非常感谢 BionicCode - 你让我摆脱了困境。