Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में List.Insert() से दूसरे स्थान पर तत्व डालना


C# में List<T>.Insert() मेथड का उपयोग करके किसी सूची में निर्दिष्ट इंडेक्स पर एक तत्व डाला जा सकता है। मौजूदा तत्व स्वचालित रूप से दाईं ओर शिफ्ट हो जाते हैं।

उदाहरण

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        // स्ट्रिंग सूची बनाएं
        List items = new List();
        items.Add("water");
        items.Add("food");
        items.Add("air");
        
        Console.WriteLine("मूल सूची:");
        for (int i = 0; i < items.Count; i++)
        {
            Console.WriteLine($"  [{i}] {items[i]}");
        }
        
        // इंडेक्स 1 पर (दूसरी स्थिति) "shelter" डालें
        items.Insert(1, "shelter");
        
        Console.WriteLine("\nInsert(1, \"shelter\") के बाद:");
        for (int i = 0; i < items.Count; i++)
        {
            Console.WriteLine($"  [{i}] {items[i]}");
        }
    }
}

आउटपुट

मूल सूची:
  [0] water
  [1] food
  [2] air

Insert(1, "shelter") के बाद:
  [0] water
  [1] shelter
  [2] food
  [3] air

Insert() सिंटैक्स और व्यवहार

public void Insert(int index, T item);
पैरामीटरविवरण
indexडालने की स्थिति (0 से Count तक)। 0 = पहला, Count = अंत में
itemडालने वाला तत्व

विभिन्न स्थितियों पर डालना

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        List numbers = new List { 10, 20, 30 };
        
        Console.WriteLine($"मूल: [{string.Join(", ", numbers)}]");
        
        // शुरुआत में (इंडेक्स 0)
        numbers.Insert(0, 5);
        Console.WriteLine($"Insert(0, 5): [{string.Join(", ", numbers)}]");
        
        // मध्य में (इंडेक्स 2)
        numbers.Insert(2, 15);
        Console.WriteLine($"Insert(2, 15): [{string.Join(", ", numbers)}]");
        
        // अंत में (इंडेक्स Count)
        numbers.Insert(numbers.Count, 40);
        Console.WriteLine($"Insert(Count, 40): [{string.Join(", ", numbers)}]");
        
        // ऋणात्मक इंडेक्स - अपवाद फेंकता है
        try
        {
            numbers.Insert(-1, 99);
        }
        catch (ArgumentOutOfRangeException ex)
        {
            Console.WriteLine($"\nऋणात्मक इंडेक्स त्रुटि: {ex.Message}");
        }
        
        // सीमा से बाहर इंडेक्स - अपवाद फेंकता है
        try
        {
            numbers.Insert(numbers.Count + 1, 99);
        }
        catch (ArgumentOutOfRangeException ex)
        {
            Console.WriteLine($"सीमा से बाहर त्रुटि: {ex.Message}");
        }
    }
}

आउटपुट

मूल: [10, 20, 30]
Insert(0, 5): [5, 10, 20, 30]
Insert(2, 15): [5, 10, 15, 20, 30]
Insert(Count, 40): [5, 10, 15, 20, 30, 40]

ऋणात्मक इंडेक्स त्रुटि: Index must be within the bounds of the List.
सीमा से बाहर त्रुटि: Index must be within the bounds of the List.

Insert() बनाम Add() बनाम InsertRange()

मेथडउपयोगसमय जटिलता
Add(item)अंत में जोड़ेंO(1) परिशोधित
Insert(index, item)निर्दिष्ट स्थिति पर एक तत्वO(n) - शिफ्टिंग के कारण
InsertRange(index, collection)निर्दिष्ट स्थिति पर एकाधिक तत्वO(n + m)
AddRange(collection)अंत में एकाधिक तत्वO(m)

प्रदर्शन विचार

// बार-बार शुरुआत में डालना धीमा है - O(n²)
List slow = new List();
for (int i = 0; i < 10000; i++)
    slow.Insert(0, i); // हर बार सभी तत्व शिफ्ट होते हैं

// बेहतर: अंत में जोड़ें फिर रिवर्स करें
List fast = new List();
for (int i = 0; i < 10000; i++)
    fast.Add(i);
fast.Reverse();

// या LinkedList उपयोग करें यदि बार-बार शुरुआत/मध्य में डालना हो
var linked = new LinkedList();
for (int i = 0; i < 10000; i++)
    linked.AddFirst(i); // O(1)

महत्वपूर्ण बिंदु

  • Insert() मौजूदा तत्वों को दाईं ओर शिफ्ट करता है (कॉपी करता है)
  • वैध इंडेक्स रेंज: 0 से Count (सम्मिलित)
  • इंडेक्स Count पर डालना Add() के समान है
  • सूची की क्षमता (Capacity) स्वचालित रूप से बढ़ती है
  • बार-बार शुरुआत/मध्य में डालने के लिए LinkedList<T> बेहतर है
  • Insert() सूची को स्थानांतरित (in-place) करता है, नई सूची नहीं बनाता
  1. Android में LinkedList में एलिमेंट जोड़कर ListView में कैसे दिखाएं? Android में LinkedList में एलिमेंट जोड़कर ListView में कैसे दिखाएं?

    Android में LinkedList का उपयोग करके ListView में डेटा प्रदर्शित करना यह उदाहरण दर्शाता है कि Android में LinkedList में एलिमेंट जोड़कर ListView में कैसे दिखाएं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में एक नया प्रोजेक्ट बनाएं: File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक

  1. डबल लिंक्ड लिस्ट का उपयोग करके किसी भी स्थिति में नोड डालने के लिए C प्रोग्राम डबल लिंक्ड लिस्ट का उपयोग करके किसी भी स्थिति में नोड डालने के लिए C प्रोग्राम

    लिंक्ड लिस्ट डायनामिक मेमोरी एलोकेशन का उपयोग करती हैं और नोड्स का संग्रह होती हैं।नोड्स के दो भाग होते हैं जो डेटा और लिंक हैं।लिंक्ड लिस्ट के प्रकारC प्रोग्रामिंग भाषा में लिंक्ड लिस्ट के प्रकार निम्नलिखित हैं:सिंगल / सिंगली लिंक्ड लिस्ट।डबल / डबली लिंक्ड लिस्ट।सर्कुलर सिंगल लिंक्ड लिस्ट।सर्कुलर ड

  1. Python प्रोग्राम से क्रमबद्ध सूची में तत्व डालना Python प्रोग्राम से क्रमबद्ध सूची में तत्व डालना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें क्रमबद्ध क्रम को बदले बिना सूची में एक तत्व डालने की आवश्यकता है। नीचे चर्चा किए गए दो दृष्टिकोण हैं। दृष्टिकोण 1: ब्रूट-फोर्स विधि उदाहरण n: index = i break