List
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
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>
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
<code class="language-csharp">// 使用协变将 IEnumerable<Apple> 转换为 IEnumerable<IFruit> List<IFruit> fruit = apples.AsEnumerable<IFruit>().ToList();</code>
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
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!