1

MaxDates と MinDates の 2 つのテーブルがあり、それぞれに DateTime 列が 1 つあります。最小日付と最大日付のすべての組み合わせを含むデータ セットを作成することを目的として、次のデータベース SELECT クエリを記述できます (期間を計算するため)。

SELECT MinDates.PriceDate, MaxDates.PriceDate
FROM MinDates, MaxDates

私は LINQ が初めてで、同等の LINQ を作成したいと考えていました。以下は良い出発点になると思いましたが、うまくいきませんでした。

var result = from MaxDates, MinDates 
             select MaxDates.PriceDate, MinDates.PriceDate

同等のLINQステートメントが何であるかについての考えはありますか?これはLINQの適切な使用法ですか?

4

4 に答える 4

2

linqのデカルト積(またはSQLの世界ではCROSS JOIN)は次のとおりです。

var crossResult = from max in MaxDates
                  from min in MinDates
                  select new { maxPriceDate = max.PriceDate, minPriceDate = min.PriceDate};
于 2013-01-17T14:07:19.580 に答える
2

あなたは近くにいます:

var result = from max in MaxDates
             from min in MinDates 
             select new {MaxDate = max.PriceDate, MinDate = min.PriceDate};

これにより、探しているデカルト積 (CROSS JOIN) が得られます。

于 2013-01-17T14:06:36.737 に答える
1
var res = from max in MaxDates
                  from min in MinDates
                  select new { MaxPriceDate = max.PriceDate,
                               MinPriceDate = min.PriceDate};
于 2013-01-17T14:09:59.690 に答える
0

拡張メソッドを使用することで、

var results = MaxDates.SelectMany(x => MinDates, (x, y) => new {x, y});
于 2013-01-17T14:08:57.167 に答える