2010-10-19 5 views
1

est-il possible de retourner, d'une méthode, une liste de types anonyme?Comment retourner une liste de types anonymes

Je construis ma liste de type anonyme comme ce

var l = (new[] { new { Name = "thename", Age = 30 } }).ToList(); 

Merci

+0

duplication possible de [Renvoyer le type anonyme?] (Http://stackoverflow.com/questions/534690/return-anonymous-type) – nawfal

Répondre

1

Il est possible que si vous revenez liste qui a été jeté à object, mais il est inutile. Envisagez de créer une classe avec les champs correspondants au lieu de la classe anonyme.

0

est possible, à la rigueur, on parle plutôt de 'marmonner'.

Cela implique de transmettre un prototype de votre type anonyme en tant que variable générique. Souvenez-vous que deux types anonymes sont considérés comme étant du même type s'ils ont les mêmes propriétés nommées/typées dans le même ordre.

0

J'ai écris cette méthode:

List<T> Cast<T>(object o, T type) 
{ 
    return (List<T>)o; 
} 

et la méthode qui doit retourner une liste de type anonyme, retournez maintenant un objet et je jetai, avec la méthode Cast<T>, à Ce dont j'ai besoin.

C'est une méthode délicate, mais c'est ce dont j'ai besoin pour l'instant.

merci à tous

0

De Creating a list of Anonymous Type in VB, une citation de JaredPar:

Voici une méthode pratique pour créer une liste d'un type anonyme un seul type anonyme.

Public Function CreateListFromSingle(Of T)(ByVal p1 As T) As List(Of T) 
    Dim list As New List(Of T) 
    list.Add(p1) 
    return List 
End Function 

Maintenant, vous pouvez simplement faire ce qui suit

Dim list = CreateListFromSingle(dsResource) 

Il y a une discussion plus approfondie sur le sujet dans le message original.