【发布时间】:2013-01-17 20:31:35
【问题描述】:
我在读书时偶然发现了这个 LINQ 查询。
var binary = new int[] { 0, 1 };
var q = from b4 in binary
from b3 in binary
from b2 in binary
from b1 in binary
select String.Format("{0}{1}{2}{3}", b4, b3, b2, b1);
foreach (var element in q)
Console.WriteLine(element);
上述 LINQ 的结果将是
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
我想看看这在 SQL Server 中会如何。
我尝试过的:
create table LINQ(x bit)
insert LINQ select 0
insert LINQ select 1
create table LINQ(x bit, y bit)
insert LINQ select 0,1
我尝试使用 LINQPAD(不提供 SQL 或 lambda 版本),使用上述临时表。我试过交叉加入,完全加入。我没有得到与 LINQ 相同结果的 SQL。
【问题讨论】:
-
鉴于您的用户名,您一定非常着迷于 1 和 0。无论如何,虽然 Linq 似乎是 SQL 的代理,但实际上并非如此。 Linq 适用于任何集合,而不仅仅是表。
-
@85:Robert Harvey 说的是哪个用户名?
-
@Robert Harvey 非常痴迷于 1 和 0 :) 绝非巧合。
标签: c# sql sql-server linq tsql