博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Enumerable 类提供的表达式方法
阅读量:5235 次
发布时间:2019-06-14

本文共 2303 字,大约阅读时间需要 7 分钟。

【01】

【名称】Aggregate<>

【描述】对应用序列累加函数

【用法】

ExpandedBlockStart.gif
代码
 
string
 sentence 
=
 
"
the quick brown fox jumps over the lazy dog
"
;
 
string
[] words 
=
 sentence.Split(
'
 
'
);
 
string
 reversed 
=
 words.Aggregate((workingSentence, next) 
=>
next 
+
 
"
 
"
 
+
 workingSentence);
 Console.WriteLine(reversed);
/*
   传入一个起始值,也可以理解为已经累加完的值,然后下一个值
*/

 

 

【02】

【名称】All<>

【描述】确定序列中的所有元素是否满足条件

【用法】

 

ExpandedBlockStart.gif
代码
List
<
UserClass
>
 Lists 
=
 
new
 List
<
UserClass
>
            {
                
new
 UserClass{ Age
=
15
, Name
=
"
先生A
"
},
                
new
 UserClass{ Age
=
16
, Name
=
"
先生B
"
},
                
new
 UserClass{ Age
=
17
, Name
=
"
女士A
"
},
                
new
 UserClass{ Age
=
22
, Name
=
"
女士B
"
},
                
new
 UserClass{ Age
=
24
, Name
=
"
女士C
"
},
                
new
 UserClass{ Age
=
26
, Name
=
"
女士D
"
},
                
new
 UserClass{ Age
=
27
, Name
=
"
女士E
"
},
                
new
 UserClass{ Age
=
28
, Name
=
"
女士F
"
}
            };
            
 
bool
 _Default 
=
 Lists.All(User 
=>
 { 
return
 User.Age 
>
 
50
; });
/*
   结果为:false 所有的都不满足
*/

 

 

【03】

【名称】Any<>

【描述】确定序列中的任何元素是否都满足条件

【用法】

 

bool
 _Default 
=
Lists.Any( u 
=>
 { 
return
 u.Age 
>
 
20
; } );
//
结果为:true,只要有一个满足条件就为true

 

 

【04】

【名称】Average<>

【描述】可以计算出序列当中的平均值

【用法】

 

double
 dou 
=
 Lists.Average(User 
=>
 { 
return
 User.Age; });
//
结果为 21.875

 

 

【05】

【名称】Find<>

【描述】查找集合当中指定的对象

【用法】 Lists.Find(U => { return U.Age == 22; });

 

 

【06】

【名称】ForEach

【描述】遍历集合中的对象

【用法】

 

Lists.ForEach(  U 
=>
 { 
if
 (U.Age 
<
 
20
) MessageBox.Show(U.Name); }  );

 

 

【07】

【名称】GroupBy<>

【描述】分组,这个方法有好多参数大家慢慢研究,我指出一个例子的用法

【用法】

 

ExpandedBlockStart.gif
代码
List
<
UserClass
>
 Lists 
=
 
new
 List
<
UserClass
>
            {
                
new
 UserClass{ Age
=
15
, Name
=
"
先生A
"
},
                
new
 UserClass{ Age
=
15
, Name
=
"
先生B
"
},
                
new
 UserClass{ Age
=
15
, Name
=
"
女士A
"
},
                
new
 UserClass{ Age
=
16
, Name
=
"
女士B
"
},
                
new
 UserClass{ Age
=
16
, Name
=
"
女士C
"
},
                
new
 UserClass{ Age
=
20
, Name
=
"
女士D
"
},
                
new
 UserClass{ Age
=
20
, Name
=
"
女士E
"
},
                
new
 UserClass{ Age
=
20
, Name
=
"
女士F
"
}
            };
            Lists.GroupBy(pet 
=>
 pet.Age,
                   (Age, pets) 
=>
 
new
                   {
                       Key 
=
 Age,
                       Count 
=
 pets.Count(),
                       Min 
=
 pets.Min(pet 
=>
 pet.Age),
                       Max 
=
 pets.Max(pet 
=>
 pet.Age)
                   }
               ).ToList().ForEach(U 
=>
 Console.WriteLine(
"
【总数:{0}】【最大值:{1}】【最小值:{2}】【分组:{3}】
"
, U.Count, U.Max, U.Min, U.Key));
            Console.ReadKey();

 

 

【07】

【名称】Select<>

【描述】返回新的对象数组

【用法】

ExpandedBlockStart.gif
代码
 Lists.Select(U 
=>
 
new
            {
                Age 
=
 U.Age,
                Name 
=
 U.Name 
+
 DateTime.Now.ToString(
"
yy-mm-dd
"
)
            }
            ).ToList().ForEach(U 
=>
 Console.WriteLine(
"
【年龄:{0}】【名称:{1}】
"
, U.Age, U.Name));

 

 

 

 

转载于:https://www.cnblogs.com/tongly/archive/2010/11/09/1872906.html

你可能感兴趣的文章
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
SQL查询总结 - wanglei
查看>>
安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
查看>>
makefile中使用变量
查看>>
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>