2017-06-22 1 views
-2

J'ai le code suivant:Modifier la fonction IEnumerable

public sealed class Gaaa 
     { 
      private readonly int _ids; 

      public Gaaa(int id) 
      { 
       _ids = id; 
      } 
      public static IEnumerable<Gaaa> Generate(int num) 
      { 
       return Enumerable.Range(1, num).Select(ids => new Gaaa(ids + 1)); 
      } 
     } 

Comment puis-je représenter le code différemment dans la fonction Générer?

+0

Que voulez-vous dire "différemment"? Voulez-vous dire ne pas utiliser la notation par points mais en utilisant la version plus verbeuse? – Sweeper

+0

@Sweeper, oui je veux utiliser la version plus verbeuse ou autre –

+1

Il y a littéralement un nombre infini de façons de modifier la fonction pour qu'elle soit différente. S'il vous plaît soyez précis dans vos questions. – Rob

Répondre

1

Je suppose que vous n'aimez pas la notation par points. Voici comment faire:

return from id in Enumerable.Range(1, num) 
    select new Gaaa(id + 1); 

Personnellement, je préfère la notation des points ici parce que ce que vous essayez de faire est si simple - la création d'un groupe de Gaaa s avec une gamme incrémentiel. Je pense qu'il est plus lisible d'utiliser la notation par points dans ce cas particulier.

notation de la requête, je pense, est plus apte à être utilisé dans des situations impliquant des collections et des opérations plus compliquées comme ceci:

from item in aCollection 
where item.Property2 > 10 
orderby item.Property1 
select item.Property3 

En outre, la notation de requête est particulièrement plus lisible lorsque vous faites une jointure.