Heim Backend-Entwicklung C#.Net-Tutorial Zusammenfassung der Verwendung von C# List

Zusammenfassung der Verwendung von C# List

Jan 19, 2017 am 11:46 AM

Besitzender Namespace: System.Collections.Generic
öffentliche Klasse List, ICollection, IEnumerable, IList, ICollection, IEnumerable

List ;Class ist das generische Äquivalent der ArrayList-Klasse. Diese Klasse implementiert die generische Schnittstelle IList mithilfe eines Arrays, dessen Größe bei Bedarf dynamisch erhöht werden kann.

Vorteile von Generika: Sie erhöhen die Effizienz und Flexibilität beim Schreiben objektorientierter Programme mit der Sprache C#. Es gibt kein erzwungenes Ein- und Auspacken von Werttypen oder Downcasting von Referenztypen, sodass die Leistung verbessert wird.

Leistungshinweise:

Bedenken Sie bei der Entscheidung, ob Sie IList verwenden möchten (beide haben ähnliche Funktionen), dass die IList-Klasse in den meisten Fällen die beste Leistung erbringt typsicher.

Wenn Sie einen Referenztyp für den Typ T der IList-Klasse verwenden, ist das Verhalten der beiden Klassen genau das gleiche. Wenn Sie jedoch einen Werttyp für Typ T verwenden, müssen Sie Implementierungs- und Boxing-Probleme berücksichtigen.

"Jede Referenz oder jeder Werttyp, der der ArrayList hinzugefügt wird, wird implizit in Object umgewandelt. Wenn es sich bei dem Element um einen Werttyp handelt, muss es beim Hinzufügen zur Liste in ein Boxing gesetzt werden, während Unboxing-Vorgänge ausgeführt werden Abrufvorgänge sowie Ein- und Auspackvorgänge verringern die Leistung; die Auswirkungen des Einpackens und Auspackens sind erheblich, wenn große Sammlungen wiederholt werden müssen. 🎜>

1 🎜>
Deklaration:

1. List mList = new List();

T ist der Typ der Elemente in der Liste, nehmen Sie nun den String-Typ als Beispiel

Zum Beispiel: List();

2. List (IEnumerable Collection);

Liste erstellen

Z.B. mit einer Sammlung als Parameter:

string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim" , "Kuku", "Locu" };

List testList = new List(temArr);

Element hinzufügen:


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

Zum Beispiel: mList.Add("John");

2. AddRange(IEnumerable Collection) Füge einen Satz von Elementen hinzu

Bsp.:

string[] temArr = { „Ha“, „Hunter“, „Tom“, „Lily“, „Jay“, „Jim“, „Kuku“, „Locu“ };

mList.AddRange(temArr);

3. Insert(int index, T item); Füge ein Element an der Indexposition hinzu

Beispiel: mList.Insert (1, „Hei“) ;

Elemente in der Liste durchlaufen:

Beispiel:
foreach (T element in mList)  T的类型与mList声明时一样
{
    Console.WriteLine(element);
}
Nach dem Login kopieren

Elemente löschen:
foreach (string s in mList)
{
    Console.WriteLine(s);
}
Nach dem Login kopieren


1. Remove(T item) löscht einen Wert

Zum Beispiel: mList.Remove("Hunter");

Löschen Sie das Element dessen Index index ist

Beispiel: mList.RemoveAt(0);

3. RemoveRange(int index, int count);

Von Beginn mit dem Indexindex , Anzahlelemente löschen

Beispiel: mList.RemoveRange(3, 2);

Bestimmen Sie, ob sich ein Element in der Liste befindet:

Liste enthält (T-Element) Gibt zurück wahr oder falsch, sehr praktisch

Beispiel:

Sortieren Sie die Elemente in der Liste:
if (mList.Contains("Hunter"))
{
    Console.WriteLine("There is Hunter in the list");
}
else
{
    mList.Add("Hunter");
    Console.WriteLine("Add Hunter successfully.");
}
Nach dem Login kopieren


List Sort () Standard ist der erste Buchstabe des Elements in aufsteigender Reihenfolge

Beispiel: mList.Sort();

kehrt die Reihenfolge der Elemente in der Liste um:

List Reverse ( ) kann in Verbindung mit List.Sort() verwendet werden, um den gewünschten Effekt zu erzielen

Zum Beispiel: mList.Sort();

List clear: List. mList.Clear();

Ermitteln Sie die Anzahl der Elemente in der Liste:

List. Count () Gibt einen int-Wert zurück

Beispiel:

int count = mList .Count ();

Console.WriteLine("Die Anzahl der Elemente in der Liste: " +count);


2. Erweiterte und leistungsstarke Methoden der Liste:

Liste verwendet als ein Beispiel:

string[] temArr = { Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", " "Locu" };

mList.AddRange(temArr);

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.

public T Find(Predicate match);

Predicate ist ein Delegat der Methode. Wenn das an ihn übergebene Objekt mit den im Delegaten definierten Bedingungen übereinstimmt, gibt die Methode „true“ zurück. Die Elemente der aktuellen Liste werden einzeln an den Prädikat-Delegaten übergeben und in der Liste vorwärts verschoben, beginnend mit dem ersten Element und endend mit dem letzten Element. Die Verarbeitung stoppt, wenn eine Übereinstimmung gefunden wird.

Prädikat kann an eine Funktion oder einen Lambda-Ausdruck delegiert werden:

Delegiert an einen Lambda-Ausdruck:

Beispiel:

Delegieren an a Funktion:

string listFind = mList.Find(name =>  //name是变量,代表的是mList
   {      //中元素,自己设定
   if (name.Length > 3)
   {
  return true;
   }
  return false;
});
Console.WriteLine(listFind);     //输出是Hunter
Nach dem Login kopieren

E.g.:
string listFind1 = mList.Find(ListFind); //委托给ListFind函数
Console.WriteLine(listFind); //输出是Hunter

ListFind函数:

public bool ListFind(string name)
 {
if (name.Length > 3)
{
    return true;
}
return false;
 }
Nach dem Login kopieren


这两种方法的结果是一样的。

List.FindLast 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的最后一个匹配元素。
public T FindLast(Predicate match);


用法与List.Find相同。

List.TrueForAll方法: 确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。

public bool TrueForAll(Predicate match);

委托给拉姆达表达式:

E.g.:

bool flag = mList.TrueForAll(name =>
{
    if (name.Length > 3)
    {
 return true;
    }
    else
    {
 return false;
    }
}
);
Console.WriteLine("True for all:  "+flag);  //flag值为false
Nach dem Login kopieren

委托给一个函数,这里用到上面的ListFind函数:

E.g.:

bool flag = mList.TrueForAll(ListFind); //委托给ListFind函数
Console.WriteLine("True for all: "+flag); //flag值为false

这两种方法的结果是一样的。

List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素。

public List FindAll(Predicate match);

E.g.:

List<string> subList = mList.FindAll(ListFind); //委托给ListFind函数
 foreach (string s in subList)
 {
Console.WriteLine("element in subList: "+s);
 }
Nach dem Login kopieren

这时subList存储的就是所有长度大于3的元素

List.Take(n): 获得前n行 返回值为IEnumetable,T的类型与List的类型一样


E.g.:

IEnumerable<string> takeList=  mList.Take(5);
   foreach (string s in takeList)
   {
  Console.WriteLine("element in takeList: " + s);
   }
Nach dem Login kopieren

这时takeList存放的元素就是mList中的前5个

List.Where方法:检索与指定谓词所定义的条件相匹配的所有元素。跟List.FindAll方法类似。

E.g.:

IEnumerable<string> whereList = mList.Where(name =>
    {
 if (name.Length > 3)
 {
return true;
 }
 else
 {
return false;
 }
    });
  foreach (string s in subList)
  {
 Console.WriteLine("element in subList: "+s);
  }
Nach dem Login kopieren

这时subList存储的就是所有长度大于3的元素

List.RemoveAll方法:移除与指定的谓词所定义的条件相匹配的所有元素。


public int RemoveAll(Predicate match);

E.g.:

mList.RemoveAll(name =>
    {
 if (name.Length > 3)
 {
return true;
 }
 else
 {
return false;
 }
    });
foreach (string s in mList)
{
    Console.WriteLine("element in mList:     " + s);
}
Nach dem Login kopieren

这时mList存储的就是移除长度大于3之后的元素。

List 是一个泛型链表...T表示节点元素类型
比如
List intList;表示一个元素为int的链表
intList.Add(34); //添加
intList.Remove(34);//删除
intList.RemoveAt(0); //删除位于某处的元素
intList.Count; //链表长度
还有Insert,Find,FindAll,Contains等方法,也有索引方法 intList[0] = 23;
1.减少了装箱拆箱
2.便于编译时检查数据类型

List 就相当于 System.Collections命名空间里面的List

更多C# List的用法小结相关文章请关注PHP中文网!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie char Array in C -Sprache So verwenden Sie char Array in C -Sprache Apr 03, 2025 pm 03:24 PM

Das Char -Array speichert Zeichensequenzen in der C -Sprache und wird als char Array_name [Größe] deklariert. Das Zugriffselement wird durch den Einweisoperator weitergeleitet, und das Element endet mit dem Null -Terminator '\ 0', der den Endpunkt der Zeichenfolge darstellt. Die C -Sprache bietet eine Vielzahl von String -Manipulationsfunktionen wie Strlen (), Strcpy (), Strcat () und strcmp ().

Wie man mit Sonderfiguren in der C -Sprache umgeht Wie man mit Sonderfiguren in der C -Sprache umgeht Apr 03, 2025 pm 03:18 PM

In der C -Sprache werden Sonderzeichen durch Escape -Sequenzen verarbeitet, wie z. B.: \ n repräsentiert Linienbrüche. \ t bedeutet tab charakter. Verwenden Sie Escape -Sequenzen oder Zeichenkonstanten, um Sonderzeichen darzustellen, wie z. B. char c = '\ n'. Beachten Sie, dass der Backslash zweimal entkommen muss. Verschiedene Plattformen und Compiler haben möglicherweise unterschiedliche Fluchtsequenzen. Bitte wenden Sie sich an die Dokumentation.

Was ist die Rolle von CHAR in C -Saiten? Was ist die Rolle von CHAR in C -Saiten? Apr 03, 2025 pm 03:15 PM

In C wird der Zeichenentyp in Saiten verwendet: 1. Speichern Sie ein einzelnes Zeichen; 2. Verwenden Sie ein Array, um eine Zeichenfolge darzustellen und mit einem Null -Terminator zu enden. 3. Durch eine Saitenbetriebsfunktion arbeiten; 4. Lesen oder geben Sie eine Zeichenfolge von der Tastatur aus.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Wie man verschiedene Symbole in der C -Sprache verwendet Wie man verschiedene Symbole in der C -Sprache verwendet Apr 03, 2025 pm 04:48 PM

Die Nutzungsmethoden von Symbolen in der C-Sprachabdeckung Arithmetik, Zuordnung, Bedingungen, Logik, Bitoperatoren usw. werden für grundlegende mathematische Operationen verwendet, Zuordnungsoperatoren werden zur Zuordnung und Addition verwendet, Subtraktion, Multiplikationszuordnung und Abteilungszuweisung, Zustandsbetreiber werden für Unterschiede verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Zeiger, Markierungen am Ende der Datei und nicht numerische Werte.

Wie man CHO in C -Sprache umwandelt Wie man CHO in C -Sprache umwandelt Apr 03, 2025 pm 03:21 PM

In der C -Sprache kann die char -Typ -Konvertierung direkt in einen anderen Typ konvertiert werden, wenn: Casting: Verwenden von Casting -Zeichen. Automatische Konvertierung des Typs: Wenn ein Datentyp einen anderen Werttyp berücksichtigen kann, wandelt der Compiler diese automatisch um.

Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

Der Unterschied zwischen char und wchar_t in der C -Sprache Der Unterschied zwischen char und wchar_t in der C -Sprache Apr 03, 2025 pm 03:09 PM

In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

See all articles