gpt4 book ai didi

c# - 在 javascript 中编写类似 linq 查询的语句

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:22 24 4
gpt4 key购买 nike

在我的 javascript 文件中,我想使用类似 linq 查询的语句来显示我的结果。下面是我的 View 模型和有关我如何获取信息的信息。

var viewModel = {
RosterRoleTypes: ko.observableArray([])
};

// the ViewModel for the array of RoleTypes
var roleTypesViewModel = function (data) {
roleTypesViewModel.AddRoles(data);
}

// Adds multiple roles to the array of RoleTypes
roleTypesViewModel.AddRoles = function (data) {
$.each(data, function (index, value) {
roleTypesViewModel.PushRole(value);
});
};

//Add a single role to the array of Roles
roleTypesViewModel.PushRole = function (role) {
viewModel.RosterRoleTypes.push(new roleViewModel(role));
}

// the ViewModel for a single Role
var roleViewModel = function (data) {
var _self = this;
_self.ContentRole = ko.observable(data.ContentRole);
_self.RoleName = ko.observable(data.RoleName);
_self.RoleRank = ko.observable(data.RoleRank);
_self.UserCount = ko.observable(data.UserCount);
};

在我的 OnSuccess 中,我想在 get 方法中执行如下操作:

var results = Enumerable.From(viewModel)
.ForEach(RoleTypes){ show RoleName and UserCount}

我如何使用 Enumerable.From 正确编写该语句...

最佳答案

您是否尝试过 LINQ.js,它听起来正是您要找的东西。您可以在这里找到它:http://linqjs.codeplex.com/

以下是他们网站上的一些示例:

// C# LINQ (delegate)
Enumerable.Range(1, 10)
.Where(delegate(int i) { return i % 3 == 0; })
.Select(delegate(int i) { return i * 10; });
// linq.js - anonymous function
Enumerable.Range(1, 10)
.Where(function(i) { return i % 3 == 0; })
.Select(function(i) { return i * 10; });
// C# LINQ (lambda)
Enumerable.Range(1, 10).Where(i => i % 3 == 0).Select(i => i * 10);
// linq.js - lambda expression
Enumerable.Range(1, 10).Where("i => i % 3 == 0").Select("i => i * 10");
// $ is default iterator variable like Scala's "_" or Groovy's "it"
Enumerable.Range(1, 10).Where("$ % 3 == 0").Select("$ * 10");
// "" is shorthand of "x => x" (identity function)
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), "", "", "outer,inner=>outer*inner");

// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..
var array = [100, 200, 30, 40, 500, 40, 200];
var ex1 = Enumerable.From(array).Distinct().ToArray(); // [100, 200, 30, 40, 500]
var ex2 = Enumerable.From("foobar").ToArray(); // ["f", "o", "o", "b", "a", "r"];
var ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); // [{Key:"foo",Value:10}, {Key:"bar",Value:20}]

// C# - AnonymousType
array.Select((val, i) => new { Value = val, Index = i });
// linq.js - object literal
Enumerable.From(array).Select("val,i=>{Value:val, Index:i}")

关于c# - 在 javascript 中编写类似 linq 查询的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19166655/

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