0

我在屏幕上显示了一个 datagridview。用户可以将名为“Pareto”的末尾列更改为他/她喜欢的任何整数。但是有一个问题,所有记录都在一个联赛中。用户也可能希望简单地留下一个号码并返回它,因此不允许丢失号码是不可能的。

基本上我需要一种方法来检查列是否缺少未排序行中的数字,并将每个缺少的数字存储到数组/列表中以供我输出。

通常我喜欢这些小逻辑问题但是在我今天编码的循环之后,我的大脑被烧毁了......所以任何输入都会很棒!

本来想先通过count获取网格中的最大记录(没问题)

然后将其用作从 1 到“maxCount”的范围。找出所有缺失的数字。听起来很简单,直到我想到它没有排序的事实。

非常感谢

4

1 回答 1

3

不清楚真正的工作流程,但是..

事实是,DataGridView排序是纯粹的UI东西。您data 可以分类并绑定到DataGrid通孔DataView或任何其他中间View层。

一次用户插入该值,您可以执行二进制搜索(排序集合搜索中最快的)以找到感兴趣的值。

编辑

如果您需要检查 (1..500) 中的一组数字中遗漏的数字,首先您可以对所有数字进行排序,就像我在数据模型中的帖子中定义的那样。

List<int> sortedAlreadyAvailableNumbers ... 

制作后

var missingNumbers =  Enumerable.Range(1, 500).Except(sortedAlreadyAvailableNumbers );

希望这可以帮助。

于 2012-06-27T14:02:23.453 回答