Heim > Backend-Entwicklung > C#.Net-Tutorial > Die Definition, Funktion und Verwendung der generischen c#-Liste

Die Definition, Funktion und Verwendung der generischen c#-Liste

高洛峰
Freigeben: 2016-12-15 15:38:11
Original
1429 Leute haben es durchsucht

Definition: Die List-Klasse stellt eine stark typisierte Liste von Objekten dar, auf die über einen Index zugegriffen werden kann, und stellt Methoden zum Suchen, Sortieren und Bearbeiten der Liste bereit.


Funktion:
Generika werden am häufigsten in generischen Sammlungen verwendet.
Wenn wir eine Listenklasse erstellen, kann der Datentyp der Listenelemente int, string oder andere Typen sein Die Verarbeitungsmethode der Listenklasse ist dieselbe.
Der Datentyp muss nicht im Voraus angegeben werden, sondern muss bei der Instanziierung der Listenklasse angegeben werden. Dies entspricht der Behandlung des Datentyps als Parameter, wodurch
die Code-Wiederverwendung maximiert, die Typsicherheit geschützt und die Leistung verbessert werden kann.

Allgemeine Verwendung von List
Namespace, zu dem es gehört: System.Collections.Generic
öffentliche Klasse List:IList,Icollection, IEnumerable,IList,Icollection,Ienumerable
List ist das generische Äquivalent der ArrayList-Klasse, die die generische Schnittstelle IList unter Verwendung eines Arrays implementiert, dessen Größe dynamisch erhöht werden kann nach Bedarf.

(1) Declare Listmlist = new List();

zB: string[] Arr = {"a","b","c"} ;

List mlist = new List(Arr);

(2) Füge ein Element hinzu List.Add(T item) 

zB: mlist .Add( "d");


(3) Sammlungselement hinzufügen

zB: string[] Arr2 ={"f","g"."h"};

mlist.AddRange(Arr2);

(4) Fügen Sie ein Element an der Indexposition hinzu. Insert(int index,T item)

z. B.: mlist.Insert(1, "p" );


(5) Durchlaufen Sie die Elemente in List

foreach(T element in mlist) Der Typ von T ist derselbe wie bei der Deklaration von mlist

.WriteLine(element);

}

zB:
foreach(string s in mlist)

}




(6) Element löschen

List.Remove(T item) Einen Wert löschen

zB: mlist.Remove("a");

List .RemoveAt(int index); Löschen Sie das Element mit tiefgestellter Index

zB: mlist.RemoveAt(0);


List.RemoveRange(int index, int count); Ausgehend vom tiefgestellten Index zählen Elemente löschen

zB: mlist.RemoveRange(3, 2);





(7) Bestimmen Sie, ob sich ein Element in der Liste befindet

List.Contains(T item) Gibt true oder false zurück

zB:

if(mlist.Contains"("g"))

Console.WriteLine("g existiert in der Liste");

else

mlist.Add("g") ;



(8) Sortieren Sie die Elemente in der Liste List.Sort(). Standardmäßig ist jeder Buchstabe des Elements in aufsteigender Reihenfolge
z. B.: mlist.Sort(. );

(9) Umkehren der Reihenfolge der Elemente in der Liste List.Reverse() kann in Verbindung mit List.Sort()

(10)List löscht List.Clear()

zB: mlist.Clear();

(11) Ruft die Anzahl der Elemente in der Liste ab. List.Count() Gibt einen int-Wert zurück

Beispiel: mlist.count();


Erweiterte, leistungsstarke List-Methode

(1)List.FindAll-Methode: Alle abrufen Elemente, die den durch das angegebene Prädikat definierten Bedingungen entsprechen


Klassenprogramm

{

static void Main(stirng[] args)

{

student stu = new student ();
stu.Name="arron";
List Students= new List();
Students.Add(stu);
Students.Add(new Student ("Süßigkeiten" ));
FindName myname = new FindName("arron");
foreach(student s in Students.FindAll(new Predicate(myname.IsName))))
{ Console .WriteLine(s );}
}

öffentlicher Klassenschüler
{
öffentlicher String Name{get;set;}
öffentlicher Schüler(){}
öffentlicher Überschreibungsstring ToString()
Rückgabezeichenfolge Format("Name :{0}",Name);
}
}

public class FindName

{
private string _name;
public FindName(string Name)
{ this._name=Name;}
public bool IsName(student s)
{ return (s.Name==_name)?true:false;}
}

(2) Die List.Find-Methode sucht nach Elementen, die den durch das angegebene Prädikat definierten Bedingungen entsprechen, und gibt das erste übereinstimmende Element in der gesamten Liste zurück

z. B.:

/ /Predicate ist ein Delegat der Methode. Wenn das an sie übergebene Objekt den vom Delegaten definierten Bedingungen entspricht, gibt die Methode „true“ zurück und die Elemente der aktuellen Liste

werden nacheinander an den Predicate-Delegaten übergeben In der Mitte der Liste platziert. Gehen Sie vorwärts, beginnend mit dem ersten Element und endend mit dem letzten Element. Die Verarbeitung stoppt, wenn eine Übereinstimmung
gefunden wird.

Die erste Methode delegiert an einen Lambda-Ausdruck:

Beispiel:
string listFind = mlist.Find(name=>
{
if(name.length>3)
return true;
return false;
});

Die zweite Methode delegiert an eine Funktion

z.

(3) List.FindLast method public T FindLast(Predicate match); Bestimmen Sie, ob jedes Element in der Liste mit dem angegebenen Prädikat übereinstimmt und die definierten Bedingungen erfüllt . Die Verwendung ist dieselbe wie bei List.Find.

(4) List.TrueForAll-Methode: Bestimmen Sie, ob jedes Element in List den durch das angegebene Prädikat definierten Bedingungen entspricht.

public bool TrueForAll(Predicate match);

(5) List.Take(n): Holen Sie sich die ersten n Zeilen und der Rückgabewert ist IEnumerable< ;T> , der Typ von T ist derselbe wie der Typ von List

Zum Beispiel:

IEnumerable >

Die ersten 5 in

(6) Liste. Wohin Methode: Alle Elemente abrufen, die den Bedingungen übereinstimmen, die durch das angegebene Prädikat definiert sind. Ähnlich der List.FindAll-Methode.

z.

                                                                                                                              });

foreach(subList의 문자열 s)

{

Console.WriteLine("subList의 요소: "+s);

}

이때 subList는 길이가 3보다 큰 모든 요소를 ​​저장합니다

(7) List.RemoveAll 메서드: 제거 지정된 조건자에 의해 정의된 조건과 일치하는 모든 요소입니다.

public int RemoveAll(Predicate match);

예:

              mList.RemoveAll(name =>​​​                     ~                     >

                                                                   ; mList)

                                                                                                                 .WriteLine("element in mList: " " + s);

}

이때 mList는 길이가 3보다 큰 요소를 저장합니다.

C# 일반 목록의 정의, 기능 및 사용법과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage