背景:
我正在设计一个类似列表的控件(WinForms),它由DbSet
。一个主要要求是它doesn't将整个列表加载到本地内存中。我正在使用一个DataGridView
在虚拟模式下作为底层 UI。我正计划实施CellValueNeeded
充当orderedQueryable.ElementAt(n)
.
Problem:
我需要允许控件的使用者按值而不是按索引获取/设置当前选定的值。获取很容易——它与 CellValueNeeded 操作相同——但设置更困难:它要求我获取给定元素的索引。没有内置的orderedQueryable.FirstIndexOf(value)
操作,虽然理论上我可以用某种方式来伪造它orderedQueryable.SkipWhile
表达式有副作用的恶作剧,实际上 DbSet 的查询提供程序可能不支持这样做。
问题:
有没有一种有效的方法来获取特定值的索引IOrderedQueryable
? How?
(如果这种方法被证明是站不住脚的,我会接受关于如何重组问题以使其可以解决的建议。)
旁注:
可以在列表中插入和删除元素,在这种情况下,旧索引将无效——这是可以接受的,因为它们永远不会暴露给消费者。对于消费者来说,尝试选择实际上不在列表中的项目是错误的,实际上消费者首先会从列表中获取该项目(尽管从那时起索引可能已发生变化)。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)