linq.js

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)

结果:

  1. (3) [{…}, {…}, {…}]
    1. 0:{index: "b_mskk", value: "kabushiki kaisha"}
    2. 1:{index: "c_bill", value: "g"}
    3. 2:{index: "d_linq", value: "to objects"}
    4. length:3
 例子:

//合并列
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;
}

 
原文地址:https://www.cnblogs.com/liuqiyun/p/8610946.html