C# Linq 常用 整理 Join

C# Linq 常用 整理 Join

using System.Linq;

1.DataTable 获取列合计

fiel 为列。

1.1无查询条件

var sum = dt.AsEnumerable().Sum(s => s.Field<decimal>(fiel));

1.2有查询条件

var sum = dt.Select(fiel+" is not null").AsEnumerable().Sum(s => s.Field<decimal>(fiel));

 

 

2.List 获取对像

List<Player> listPlayers = new List<Player>();

if (listPlayers.Exists(c => c.gms_location == id)) 
Player p =listPlayers.First(c => c.gms_location == id);

 

3.List 合计列

3.1 数量

listPlayers.Where(a => a.gms_gign == "警察" &&a.isDie).Count();

3.2.合计列

List<wktype> rows;

var je = rows.Sum(x => x.je);
var cs = rows.Where().Sum(x => x.cs);

 

public class wktype         public string type { get; set; }         public Decimal cs { get; set; }
    }

 

4.List排序 检索 遍历

 4.1

List<Player> ps = listPlayers.Where(a => a.gms_gign == "警察").OrderBy(a=>a.gms_location).ToList<Player>();//OrderByDescending

foreach(Player p in ps)                     
                }

 

更新 : ps .ForEach(x => x.stock=-1)

带条件更新: info.ForEach(x => { if (x.stock == -1) { x.stock = 1; } });  

4.2                 where p.gms_gign == "警察"                 select p;

foreach(Player p in ps)                     
                }

 

List<int> arr = new List<int>() { 1, 2, 3, 4, 5, 6, 7 };             var s = (from v in arr where v > 3 select v).Sum();             var sss = arr.SelectMany<int, string>(a => { return new List<string>() { "a", a.ToString() }; });             MessageBox.Show(s.ToString());

 

选取一列,去重,转为字符串数组 string[]

var groups = map.listMap.Where(a => a.visible == "1").Select(o => o.mname).Distinct().ToArray();

或其他数组  .Distinct().ToArray();

var groups1 = map.listMap                 .Select(o => new { a = o.mname,b="aa" })                 .ToArray();

            ViewBag.groups1 = groups1;

分组转List<string>

var groups1 = map.listMap                 .GroupBy(a => a.mname)
                .Select(o => o.Key);

            ViewBag.groups1 = groups1.ToList();

或其他类型

var groups1 = map.listMap                 .GroupBy(a => a.mname)
                .Select(o => new {key =o.Key});

            ViewBag.groups1 = groups1.ToList();

 

4.3 Join

string roles = string.Join(",", chkListRole.CheckedItems.Cast<string>().Select(a=>a.ToString()));

 

posted @ 2021-01-05 13:18  不要摸我的腰  阅读(1189)  评论(0编辑  收藏  举报