私はソートされていない配列を持っています。この配列のほとんどの数字は連続しています(1,2,3,4,5、...)が、残りの数字よりも高い数字があることがあります。C#:数字のループスルーと連続した数字を1つの配列に入れ、他の数字は他の配列の他の数字
int highestNumber = int.MinValue;
int secondHighestNumber = int.MinValue;
int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 1207, 7, 8, 9, 1803, 10, 11, , 9000, 9001 };
int counter = 0;
foreach (int number in arr) {
if (number > highestNumber) {
secondHighestNumber = highestNumber;
highestNumber = number;
}
else if (number > secondHighestNumber) secondHighestNumber = number;
}
コードを実行すると、9001が最も高く、9000が2番目に高いことがわかります。しかし、私は1から11までのすべての数字の配列を得るように変更したいと思います。には1つだけの違いがあります。と2番目の配列はすべて1207,1803、 9000と9001。
9000と9001は最初の配列には置かないでください。これらの数字と残りの部分の差が大きすぎるためです。だから、最終的な結果は次のようになります。これの目的が何であるかに
int[] arr1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
int[] arr2 = new int[] { 1207, 1803, 9000, 9001 };
いくつかの背景情報:
Cientは、記事を作成し、それぞれの記事は、どのような最高の資料番号を検索して、作成された資料番号を持っていますこれまでの「記事」テーブル(たとえば20)にある場合、新しい記事の番号はその番号+ 1(たとえば21)です。したがって、1つの数字に増分。しかし、クライアントは、記事を追加して記事の希望する記事番号を入力することができるようにしたいので、最後に作成した記事の記事番号を7000と入力してみましょう。その後、彼はその後、別の記事を作成する場合、私はインクリメントする数のリストを続行する必要があります。したがって、クライアントが次の記事の値を再び変更しない限り、次の新しい記事は記事番号として22でなければなりません(7001ではなく)。
私は今これを理解しようとしているので、どんな助けもありがとうございます。
それを並べ替えて、最初から始めてください。 –
@ThomasWellerですが、コードは9001を最高、9000を2番目に高く返します。 – Magali
'arr.Select(i => i + 1).Except(arr).Min()' – PetSerAl