掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DataTableをForEachでGroupByするには? (ID:146690)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> いつもWhereとかOrderByしかしないので気づきませんでしたが > GroupByにすると匿名型になってしまうんですね。 匿名型になるかどうかを決めるのは、GroupBy というよりも むしろ Select の方だと思いますよ。 匿名型になるのは、Select 句に複数のフィールドを定義した場合かと。 # Select 句を指定の指定がない場合、クエリは、現在のスコープで # 識別される範囲変数のすべてのメンバに基づく型を返す仕様です。 # http://msdn.microsoft.com/ja-jp/library/bb384607.aspx たとえば今回の場合でいえば、 Dim q = From row In tbl.Rows _ Group By Code = row("COL1") Into Hoge = Group _ Select Code などとすれば、For Each の結果は匿名型になりません。 あるいは、複数の項目を返したい場合に、 For Each z As Foo In q のように、型を明示したいのであれば、 Class Foo Public A As String Public B As Integer Sub New(A As String, B As Integer) Me.A = A Me.B = B End Sub End Class などの型を定義しておき、 Dim q = From row In tbl.Rows _ Group By Code = row!COL1 Into Hoge = Group _ Select New Foo(CStr(Code), Hoge.Count) などという Linq 式にすれば OK です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.