Heim >Backend-Entwicklung >C++ >Wie kann ich ein Objekt in C# in einen anonymen Typ umwandeln?
Die Frage ist, wie man ein Objekt in einen anonymen Typ umwandelt. Anonyme Typen werden mithilfe von Objektinitialisierern erstellt und häufig als bequeme Möglichkeit zum Speichern von Daten verwendet. Allerdings haben sie keinen Typnamen, was ihre Umwandlung erschweren kann.
Eine Möglichkeit, ein Objekt in einen anonymen Typ umzuwandeln, besteht darin, einen Trick zu verwenden, bei dem ein Dummy-Wert des gewünschten anonymen Typs verwendet wird Typ. Dieser Dummy-Wert wird verwendet, um den Typ des umzuwandelnden Objekts abzuleiten. Hier ist ein Beispiel:
public class Program { public static void Main(string[] args) { var a = new { Id = 1, Name = "Bob" }; TestMethod(a); } private static void TestMethod(object x) { // This is a dummy value, just to get 'a' to be of the right type var a = new { Id = 0, Name = "" }; a = Cast(a, x); Console.WriteLine(a.Id + ": " + a.Name); } private static T Cast<T>(T typeHolder, object x) { // typeHolder above is just for compiler magic // to infer the type to cast x to return (T)x; } }
Eine andere Möglichkeit, ein Objekt in einen anonymen Typ umzuwandeln, ist die Verwendung einer generischen Erweiterungsmethode. Mit dieser Methode kann ein Objekt in einen beliebigen anonymen Typ umgewandelt werden. Hier ist ein Beispiel:
public static class AnonymousTypeExtensions { public static T CastTo<T>(this object value, T targetType) { // targetType above is just for compiler magic // to infer the type to cast value to return (T)value; } } public class Program { public static void Main(string[] args) { var a = new { Id = 1, Name = "Bob" }; var b = a.CastTo(new { Id = 0, Name = "" }); Console.WriteLine(b.Id + ": " + b.Name); } }
Es ist jedoch wichtig zu beachten, dass die Verwendung anonymer Typen auf diese Weise schwierig sein kann und im Allgemeinen nicht empfohlen wird. Es ist besser, stattdessen einen echten Typ zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Objekt in C# in einen anonymen Typ umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!