Linq 学习

聚合操作符                                                                                              说明                                                                                                                 
Aggregate          对序列执行一个自定义方法                                                                           
Average                                                                          计算数值序列的平均值
Count 返回序列中的项目数(整数)
LongCount 返回序列中的项目数(长型)
Min 查找数字序列中的最小数
Max 查找数字序列中的最大值
Sum 汇总序列中的数字
   
连接操作符 说明
Concat 将两个序列连成一个序列
   
转换操作符 说明
Cast 将序列中的元素转换成指定类型
OfType 筛选序列中指定类型的元素
ToArray 从序列返回一个数组
ToDictionary 从序列返回一个字典
ToList 从序列返回一个列表
ToLookup 从序列返回一个查询
ToSequence 返回一个IEnumerable序列
   
元素操作符 说明
DefaultIfEmpty 为空序列创建默认元素
ElementAt 返回序列中指定索引的元素
ElementAtOrDefault 返回序列中指定索引的元素,或者如果索引超出范围,则返回默认值
First 返回序列中的第一个元素
FirstOrDefault 返回序列中的第一个元素,或者如果未找到元素,则返回默认值
Last 返回序列中的最后一个元素
LastOrDefault 返回序列中的最后一个元素,或者如果未找到元素,则返回默认值
Single 返回序列中的单个元素
SingleOrDefault 返回序列中的单个元素,或者如果未找到元素,则返回默认值
   
相等操作符 说明
SequenceEqual 比较两个序列看其是否相等
   
生成操作符 说明
Empty 生成一个空序列
Range 生成一个指定范围的序列
Repeat 通过将某个项目重复指定次数来生成一个序列
   
分组操作符 说明
GroupBy 按指定分组方法对序列中的项目进行分组
   
联接操作符 说明
GroupJion 通过归组将两个序列联接在一起
Jion 将两个序列从内部联接起来
   
排序操作符 说明
OrderBy 以升序按值排列序列
OrderByDescending 以降序按值排列序列
ThenBy 升序排列已排列的序列
ThenByDescending 降序排列已排列的序列
Reverse 颠倒序列中项目的顺序
   
分区操作符 说明
Skip 返回跳过指定数目项目的序列
SkipWhile 返回跳过满足表达式项目的序列
Take 返回具有指定数目项目的序列
TakeWhile 返回具有满足表达式项目的序列
   
投影操作符 说明
Select 创建部分序列的投影
SelectMany 常见部分序列的一对多投影
   
限定符操作符 说明
 All 确定序列中的所有项目是否满足某个条件 
 Any 确定序列中是否有任何项目满足条件
 Contains 确定序列是否包含指定项目 
   
 限制操作符 说明 
 Where 筛选序列中的项目 
   
 设置操作符 说明 
 Distinct 返回无重复项目的序列 
 Except 返回代表两个序列差集的序列
 Intersect 返回代表两个序列交集的序列
 Union 返回代表两个序列并集的序列
                  

 1、Concat

class dogs {
    public string name { get; set; }
    public string size { get; set; }
}
List<dogs> list1 = new List<dogs> { new dogs { name = "dog4", size = "-4" }, new dogs { name = "dog2", size = "-2" } };
List<dogs> list2 = new List<dogs> { new dogs { name = "dog3", size = "-3" }, new dogs { name = "dog1", size = "-1" } };
List<dogs> list3 = null;
private void Button_Click_2(object sender, RoutedEventArgs e) {
    list3 = list1.AsQueryable().Concat<dogs>(list2.AsQueryable()).ToList();
    for (int i = 0; i < list3.Count; i++) {
        tb1.Text += list3[i].name + list3[i].size + "";
    }
}
原文地址:https://www.cnblogs.com/qq278360339/p/3223126.html