2017-06-22 16 views
-2

は、私は次のコードを持っている:修正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)); 
      } 
     } 

はどのようにして生成する機能で異なるコードを表すことができますか?

+0

「違う」とはどういう意味ですか?ドット表記を使用しないで、より語彙豊かなバージョンを使用することを意味しますか? – Sweeper

+0

@ Sweeper、はいよりワーキーなバージョンなどを使用したい –

+1

文字どおり、関数を変更することができる無数の方法があります。あなたの質問に特定してください。 – Rob

答えて

1

あなたはドット表記が気に入らないと思います。ここではあなたがそれを行う方法です。

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

何をやろうとしていることはとても簡単ですので、私は個人的にここにドット表記を好む - インクリメントの範囲でGaaa Sの束を作成します。私は、この特定の場合にドット表記を使用する方が読みやすいと思います。

クエリ表記は、私が思うに、より多くのコレクションを含む状況での使用に適しており、このような、より複雑な操作をされています。参加を行う場合も、クエリ表記は、特に、より読みやすい

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

関連する問題