Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ค้นหาหมายเลขที่ขาดหายไปในลำดับใน C #


ตั้งค่ารายการ

List<int> myList = new List<int>(){1, 2, 3, 5, 8, 9};

ตอนนี้ รับองค์ประกอบแรกและองค์ประกอบสุดท้าย -

int a = myList.OrderBy(x => x).First();
int b = myList.OrderBy(x => x).Last();

ในรายการใหม่ รับองค์ประกอบทั้งหมดและใช้ข้อยกเว้นเพื่อรับตัวเลขที่ขาดหายไป -

List<int> myList2 = Enumerable.Range(a, b - a + 1).ToList();
List<int> remaining = myList2.Except(myList).ToList();

ให้เราดูรหัสที่สมบูรณ์ -

ตัวอย่าง

using System.Collections.Generic;
using System;
using System.Linq;

public class Program {
   public static void Main() {
      List<int> myList = new List<int>(){1, 2, 3, 5, 8, 9};
      Console.WriteLine("Numbers... ");
      foreach(int val in myList) {
         Console.WriteLine(val);
      }
      int a = myList.OrderBy(x => x).First();
      int b = myList.OrderBy(x => x).Last();
      List<int> myList2 = Enumerable.Range(a, b - a + 1).ToList();
      List<int> remaining = myList2.Except(myList).ToList();
      Console.WriteLine("Remaining numbers... ");
      foreach (int res in remaining) {
         Console.WriteLine(res);
      }
   }
}

ผลลัพธ์

Numbers...
1
2
3
5
8
9
Remaining numbers...
4
6
7