Heim > Backend-Entwicklung > C++ > Wie konvertiert man eine Liste sicher in eine Liste in C#?

Wie konvertiert man eine Liste sicher in eine Liste in C#?

Barbara Streisand
Freigeben: 2025-01-17 00:46:09
Original
185 Leute haben es durchsucht

How to Safely Convert a List to a List in C#?

List in C# sicher in List konvertieren

Beim Arbeiten mit C#-Sammlungen kann es vorkommen, dass Sie eine Liste abgeleiteter Klassenobjekte in eine Liste von Basisschnittstellenobjekten konvertieren müssen. Obwohl diese Konvertierung einfach erscheint, kann die Umwandlung zwischen verschiedenen Typen potenzielle Probleme verursachen.

Eine direkte Umwandlung von einem Typ in einen anderen (z. B. von List in List) ist in C# nicht möglich, da dies zu unsicheren Vorgängen führen würde. Der Versuch einer solchen Besetzung kann zu ungewöhnlichem oder unerwartetem Verhalten führen.

Um sicher zwischen diesen beiden Typen zu konvertieren, müssen wir eine neue Liste von Zieltypen erstellen. Dies kann erreicht werden, indem die ursprüngliche Liste iteriert und jedes Element manuell zur neuen Liste hinzugefügt wird. Zum Beispiel:

<code class="language-csharp">List<Client> clients = new List<Client>();
List<IDic> dics = new List<IDic>();

// 遍历 Client 列表
foreach (Client client in clients)
{
    // 创建一个新的 IDic 对象并设置其属性
    IDic dic = new Dic
    {
        Id = client.Id,
        Name = client.Name
    };

    // 将新的 IDic 对象添加到 dics 列表
    dics.Add(dic);
}</code>
Nach dem Login kopieren

Zusätzliche Optionen in .NET 4 und C# 4

In .NET 4 und C# 4 können Sie das Konzept der Kovarianz nutzen, um die Konvertierung eines IEnumerable zu vereinfachen. Dies ist nützlich, wenn Sie mit schreibgeschützten Sammlungen arbeiten:

<code class="language-csharp">// 使用协变将 IEnumerable<Apple> 转换为 IEnumerable<IFruit>
List<IFruit> fruit = apples.AsEnumerable<IFruit>().ToList();</code>
Nach dem Login kopieren

Es ist jedoch zu beachten, dass Kovarianz nur für schreibgeschützte Sammlungen gilt. Wenn Sie die ursprüngliche Liste ändern, nachdem Sie die IEnumerable-Ansicht erstellt haben, werden die Änderungen nicht in der abgeleiteten Ansicht widergespiegelt.

Das obige ist der detaillierte Inhalt vonWie konvertiert man eine Liste sicher in eine Liste in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage