https://archive.codeplex.com/?p=linqjs
1.去重
var allrows = $(DomList.userRoleGrid1).datagrid('getRows');
var rows = $(DomList.userRoleGrid1).datagrid('getSelections');
var notCheckedrows = Enumerable.From(allrows).Except(rows).ToArray();
$.each(notCheckedrows,function (index, item) {
RoleList.push(item.ID);
})
2.分组
void Main()
{
int[] comparValue = { 11, 22, 11, 11, 33, 11, 22 };
var query = (from num in
(
from number in comparValue
group number by number into g
select new
{
number = g.Key,
cnt = g.Count()
}
)
orderby num.cnt descending
select new{ num.number,num.cnt }).ToList();
foreach(var a in query)
Console.WriteLine("{0},{1}", a.number,a.cnt);
}
输出:
11,4 22,2 33,1
分组求和:
var data=[{
"DateEvent": "2013-04-23 14:00:00Z",
"DateRecord": "2013-04-23 14:00:00Z",
"Amount": -9500,
"Type": {
"Description": "Capital"
},
"Currency": {
"ID": "USD",
}
},{
"DateEvent": "2013-04-23 14:00:00Z",
"DateRecord": "2013-04-23 14:00:00Z",
"Amount": -9500,
"Type": {
"Description": "Capital"
},
"Currency": {
"ID": "USD",
}
}];
var result = Enumerable.From(data).GroupBy("$.Currency.ID", null,
function (key, g) {
var result = {
currency: key,
total: g.Sum("$.Amount")
}
return result;
}).ToArray();
//alert(result.lent)
console.log(result)
结果:[{currency: "USD", total: -19000}]
分组统计个数
var data=[{
"DateEvent": "2013-04-23 14:00:00Z",
"DateRecord": "2013-04-23 14:00:00Z",
"Amount": -9500,
"Type": {
"Description": "Capital"
},
"Currency": {
"ID": "USD",
}
},{
"DateEvent": "2013-04-23 14:00:00Z",
"DateRecord": "2013-04-23 14:00:00Z",
"Amount": -9500,
"Type": {
"Description": "Capital"
},
"Currency": {
"ID": "USD",
}
}];
var result = Enumerable.From(data).GroupBy("$.Currency.ID", null,
function (key, g) {
var result = {
currency: key,
total: g.Count()
}
return result;
}).ToArray();
//alert(result.lent)
console.log(result)
结果:[{currency: "USD", total: 2}]
4.查询:
var jsonArray = [
{ "user": { "id": 100, "screen_name": "d_linq" }, "text": "to objects" },
{ "user": { "id": 130, "screen_name": "c_bill" }, "text": "g" },
{ "user": { "id": 155, "screen_name": "b_mskk" }, "text": "kabushiki kaisha" },
{ "user": { "id": 301, "screen_name": "a_xbox" }, "text": "halo reach" }
];
var queryResult = Enumerable.From(jsonArray)
.Where(function (x) { return x.user.id < 200 })
.OrderBy(function (x) { return x.user.screen_name })
.Select(function (x) { return {index:x.user.screen_name,value:x.text }})
.ToArray();
console.log(queryResult)
结果:
例子:
//合并列
var goodsCount=Enumerable.From(CheckedGoods).Select(function (x) {
return { Goods: x.GoodsCategoryName + x.GoodsName + x.GoodsSpecificationName, Count: x.ProcurementApplyCount }
}).ToArray();
//分组求个数
var GroupResult = Enumerable.From(goodsCount).GroupBy("$.Goods", null,
function (key, g) {
var result = {
Goods: key,
total: g.Count()
}
return result;
}).ToArray();
//查询
var result = Enumerable.From(GroupResult).Where(function (x) { return x.total > 1 }).Select("$.Goods").ToArray();
if (result.length > 0) {
var msg = "";
$.each(result, function (index, item) {
msg += item+",";
})
$.messager.alert('提示', msg+'重复,请删除重复数据!', 'info');
return;
}