C# Linq 常用 整理

来源:互联网 发布:台湾中华电信网络制式 编辑:程序博客网 时间:2024/06/01 09:53

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 je { 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)
                {
                    
                }

4.2
                var ps = from p in listPlayers
                where p.gms_gign == "警察"
                orderby p.gms_location ascending /*descending*/
                select p;

foreach(Player p in ps)
                {
                    
                }


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

原创粉丝点击