सूची <T> की शुरुआत में आइटम कैसे जोड़ें?


417

मैं ड्रॉप डाउन सूची में "सेलेक्ट वन" विकल्प जोड़ना चाहता हूं List<T>

एक बार जब मैं इसके लिए क्वेरी List<T>करता हूं, तो मैं अपने प्रारंभिक Item, डेटा स्रोत का हिस्सा कैसे नहीं जोड़ सकता, क्योंकि इसमें पहला तत्व है List<T>? मेरे पास है:

// populate ti from data               
List<MyTypeItem> ti = MyTypeItem.GetTypeItems();    
//create initial entry    
MyTypeItem initialItem = new MyTypeItem();    
initialItem.TypeItem = "Select One";    
initialItem.TypeItemID = 0;
ti.Add(initialItem)  <!-- want this at the TOP!    
// then     
DropDownList1.DataSource = ti;

जवाबों:


719

इन्सर्ट विधि का उपयोग करें :

ti.Insert(0, initialItem);

8
@BrianF, हाँ आप सही हैं। डॉक्टर:This method is an O(n) operation, where n is Count.
23W

4
यदि आप MSDN से लिंक करने जा रहे हैं तो @ 23W को संभवतः अंग्रेजी पेज से लिंक करना चाहिए।
mbomb007

क्या सूची के अंत में सम्मिलित करना संभव होगा?
गैरी हेन्शेल

3
@GaryHenshall हाँ, Addविधि का उपयोग करें , यह अंत में सम्मिलित करता है।
मार्टिन असेनोव

2
.NET 4.7.1 के बाद से, आप उपयोग कर सकते हैं Append()और Prepend()इस उत्तर की जाँच करें
aloisdg codidact.com

24

अपडेट: एक बेहतर विचार, "AppendDataBoundItems" संपत्ति को सही पर सेट करें, फिर "आइटम चुनें" को घोषित करें। डेटाबाइंडिंग ऑपरेशन सांख्यिकीय रूप से घोषित आइटम में जोड़ देगा।

<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="true">
    <asp:ListItem Value="0" Text="Please choose..."></asp:ListItem>
</asp:DropDownList>

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

-Oisin


2
यह बहुत मजेदार है। ओपी ने ASP.NET को निर्दिष्ट नहीं किया, लेकिन यह जानने के लिए एक अच्छी चाल है।
मैट हैमिल्टन

5

.NET 4.7.1 के बाद से, आप साइड-इफ़ेक्ट फ्री Prepend()और उपयोग कर सकते हैं Append()। उत्पादन एक IEnumerable होने जा रहा है।

// Creating an array of numbers
var ti = new List<int> { 1, 2, 3 };

// Prepend and Append any value of the same type
var results = ti.Prepend(0).Append(4);

// output is 0, 1, 2, 3, 4
Console.WriteLine(string.Join(", ", results ));

4

उपयोग List<T>.Insert

हालांकि आपके विशिष्ट उदाहरण के लिए प्रासंगिक नहीं है, अगर प्रदर्शन महत्वपूर्ण है, तो उपयोग करने पर भी विचार करें LinkedList<T>क्योंकि किसी आइटम को प्रारंभ करने के List<T>लिए सभी वस्तुओं को स्थानांतरित करने की आवश्यकता होती है। देखें कि मुझे एक लिंक्डलिस्ट बनाम एक सूची का उपयोग कब करना चाहिए


3

की सम्मिलित विधि का प्रयोग करेंList<T> :

List.Insert Method (Int32, T): Insertsसूची में एक तत्व specified index

var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.