gpt4 book ai didi

linq - 使用(Linq for JavaScript 库)子查询(操作方法)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:46 24 4
gpt4 key购买 nike

我正在使用这个库:jsinq .

我想使用子查询创建一个新对象。例如,在 .NET LINQ 中,我可以这样做:

from a in Attendances
where a.SomeProperty = SomeValue
select new {
.Property1 = a.Property1,
.Property2 = a.Property2,
.Property3 = (from p in People
where p.SomeProperty = a.Property3
select p)
}

这样我就得到了所有人员的列表,其中 Property3 值与列表中返回的每个对象中出勤的 Property3 值相匹配。

我没有在文档或 playground 上看到任何示例.尝试了几次,但没有成功。

有人知道这是否可行以及如何实现吗?

最佳答案

在寻找 LINQ-JavaScript 库时,我也是从 jslinq 开始的。但是我决定切换到 linq.js,我发现它更接近 .NET 风格的 LINQ。

http://linqjs.codeplex.com

http://neue.cc/reference.htm

linq.js 库最好的部分之一是它包含类似于 C# 的 lambda 语法,您可以在这些 lambda 中放置子查询。

例如,以他们发布的以下 linq.js 查询为例。

Enumerable.Range(0, 20)
.Where("$ % 3 == 0")
.Select("value, index => {index:index, value:value * 10}")
.WriteLine("$.index + ':' + $.value")

评估输出:

0:0
1:30
2:60
3:90
4:120
5:150
6:180

现在是一个带有子查询的例子:

Enumerable.Range(0, 20)
.Where("$ % 3 == 0")
.Select("value, index => {index:index, value:Enumerable.Range(0, 20).Where(\"$ % 3 == 0\").ToArray()}")
.WriteLine("$.index + ':' + $.value")

返回:

0:0,3,6,9,12,15,18
1:0,3,6,9,12,15,18
2:0,3,6,9,12,15,18
3:0,3,6,9,12,15,18
4:0,3,6,9,12,15,18
5:0,3,6,9,12,15,18
6:0,3,6,9,12,15,18

这是一个简单的例子,但它确实表明使用 linq.js 可以进行子查询。

关于linq - 使用(Linq for JavaScript 库)子查询(操作方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com