2011-02-05 11 views
1

私はLinqを初めて使っています。なぜ、First()というメソッド呼び出しが、次のクエリでCountyから注文する際に必要なのだろうと思います。また、を知った後、が必要な場合は、Last()メソッドを使用して同じ結果を達成できますか?Orderby文はFirst()メソッド呼び出しを使用しますが、なぜそれが必要ですか?

var hsQ = from hspt in hospitals 
      orderby hspt.City 
      group hspt by hspt.County into hsptGroup 
      orderby hsptGroup.First().County 
      select hsptGroup; 

注:上記の例では、私が読んでいる本からの質問/回答の一部であり、私は見ることのためにタイプ病院が明示的に定義されていません。

+3

この場合の「キー」は郡であるため、グループの '.Key'を' orderby'で使用した方がより明確になりました。 –

答えて

5

hsptGroupには病院のグループがあり、病院は1つではありません。

このグループのすべての病院は同じ郡を持っていますが、依然として.First()を指定する必要があるため、病院の1つの郡を参照できます。

+1

そのグループ内のすべての病院は、それらがすべてそのプロパティによってグループ化されているので、「国」に対して同じ値を持つことに注意することが役立ちます。だから、これらの病院のいずれかが '国家 'によって注文するのは、'ファースト() 'か'ラスト() 'のどちらであろうと同じ結果をもたらすでしょう。 Hightechriderが彼のコメントで言及しているように、 'hsptGroup'が' Key'によって順序付けされていれば、それは最も明白です。 –

+0

First()メソッドのポイントは、1つの値を注文することです。それは郡がFirst()であることに依存していますか?私。郡がAまたはZで始まっている場合は、それは意味がありますか? – contactmatt

+0

@contactmatt '.First()'は、すべてのグループの最初の病院レコードを返します。なぜあなたは '.First()。Count'を呼びますか? –

0

実際には、Firstは、グループ化されたアイテムのコレクション内の最初の要素にアクセスするために使用されます。したがって、注文は最初のアイテムの郡に基づいて行われます。はい、できます最後とそのような順序は、グループ化されたコレクションの最後の項目に基づいて行われます。

関連する問題