0

画面にdatagridviewが表示されています。ユーザーは、「パレート」と呼ばれる終了列を好きな整数に変更できます。しかし、落とし穴があり、すべてのレコードがリーグに含まれています。また、ユーザーは単に番号を省略して戻ってきたい場合もあるため、番号の欠落を許容することはできません。

基本的に、ソートされていない行から列に欠落している数値があるかどうかをチェックし、欠落している各数値を配列/リストに格納して出力するメソッドが必要です。

通常、私はこれらの小さな論理的な質問が好きですが、今日私がコーディングしたループの後、私の脳は燃え尽きています...だからどんな入力でも素晴らしいでしょう!

私は当初、カウントを介してグリッド内の最大レコードを取得することを最初に考えました(問題ありません)

次に、1から「maxCount」までの範囲として使用します。不足している番号をすべて見つけます。ソートされていないことを考えるまでは、とてもシンプルに聞こえました。

どうもありがとう

4

1 に答える 1

3

実際のワークフローは明確ではありませんが、..

事実は、ソートされてDataGridViewないのは純粋なUIものです。並べ替えて、viaまたはその他の中間層にバインドdata できます。DataGridDataViewView

ユーザーが値を挿入すると、binary-search(ソートされたコレクション検索で利用可能な最速)を実行して、目的の値を見つけることができます。

編集

(1..500)の一連の数値の中で欠落している数値を確認する必要がある場合は、最初に、データモデルの私の投稿で定義されているように、すべての数値を並べ替えることができます。

List<int> sortedAlreadyAvailableNumbers ... 

作った後

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

お役に立てれば。

于 2012-06-27T14:02:23.453 に答える