Sobes.tech
Middle

რა უნდა გაკეთდეს, რათა შედაროთ ორი კოლექციის შინაარსი?

sobes.tech AI

პასუხი AI-სგან

کچھ طریقے موجود ہیں:

  1. عنصر بہ عنصر موازنہ ترتیب کے ساتھ۔ دونوں مجموعوں کو ترتیب دیں اور پھر عناصر کو انڈیکس کے مطابق موازنہ کریں۔
  2. LINQ کا استعمال کرتے ہوئے موازنہ۔
    • SequenceEqual: دونوں مجموعوں کے مواد کا عنصر بہ عنصر موازنہ، ترتیب کو مدنظر رکھتے ہوئے۔
    • Intersect: دونوں مجموعوں میں مشترکہ عناصر تلاش کریں۔
    • Except: ایسے عناصر تلاش کریں جو ایک مجموعہ میں موجود ہیں لیکن دوسرے میں نہیں۔
    • Union: دونوں مجموعوں کے منفرد عناصر کو یکجا کریں۔
  3. HashSet کا استعمال۔ ایک مجموعہ کو HashSet میں تبدیل کریں تاکہ تیز تلاش اور موازنہ کیا جا سکے۔

منتخب کرنے کے لیے:

  • عناصر کا ترتیب: کیا ترتیب اہم ہے؟
  • کارکردگی: بڑے مجموعوں کے لیے، ہیش ٹیبلز یا ترتیب دینے کے طریقے زیادہ مؤثر ہو سکتے ہیں۔
  • نقلیں: نقل شدہ عناصر کے ساتھ کیا کرنا ہے؟

LINQ SequenceEqual کا استعمال کی مثال:

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

// ...

List<int> list1 = new List<int> { 1, 2, 3 };
List<int> list2 = new List<int> { 1, 2, 3 };
List<int> list3 = new List<int> { 3, 2, 1 };

// ترتیب کو مدنظر رکھتے ہوئے مواد کا موازنہ
bool areEqualOrdered = list1.SequenceEqual(list2); // true
bool areEqualOrdered2 = list1.SequenceEqual(list3); // false

LINQ Intersect کا استعمال کی مثال:

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

// ...

List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };

// مشترکہ عناصر تلاش کریں
IEnumerable<int> commonElements = list1.Intersect(list2); // { 3, 4 }

HashSet کا استعمال کی مثال:

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

// ...

List<int> list1 = new List<int> { 1, 2, 3 };
List<int> list2 = new List<int> { 3, 1, 2 };

// تیز تلاش کے لیے ایک مجموعہ سے HashSet بنائیں
HashSet<int> set1 = new HashSet<int>(list1);

// چیک کریں کہ دوسری مجموعہ کے تمام عناصر پہلی مجموعہ میں موجود ہیں
bool containsAll = list2.All(item => set1.Contains(item)); // true

// اضافی چیک کہ دونوں مجموعے منفرد عناصر کی ایک جیسی تعداد رکھتے ہیں
if (containsAll && set1.Count == list2.Distinct().Count())
{
    // مجموعے ایک ہی عناصر پر مشتمل ہیں، ترتیب کو نظر انداز کرتے ہوئے
}