LINQ系列:Linq to Object转换操作符
来源:互联网 发布:h3c交换机查看端口状态 编辑:程序博客网 时间:2024/06/01 20:40
转换是指将输入对象的类型转变为序列的动作。
1. AsEnumerable
AsEnumerable操作符将查询的输入以IEnumberable(T)类型返回。
2. Cast
Cast操作符将IEnumberable集合中的元素转换为指定的类型,当Cast运算符无法将源类型转换为目标类型时将抛出InvalidCastException。
from T e in s <=> from e in s.Cast<T>()
1>. 原型定义
public static IEnumerable<TResult> Cast<TResult>(this IEnumerable source);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };foreach (int f in fibonacci.Cast<int>()){ Console.WriteLine(f);}
var expr = from f in fibonacci.Cast<int>() select f;
var expr = from int f in fibonacci select f;
from Product p in productsselect pfrom p in products.Cast<Product>()products.Cast<Product>()
3. OfType
OfType操作符能够实现基于一个特定的类型对IEnumberable对象的元素进行过滤,OfType会遍历整个序列或集合,对全部元素进行过滤。
1>. 原型定义
public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source);
2>. 示例
ArrayList complex = new ArrayList();complex.Add("LINQ to Object");complex.Add(1);complex.Add("LINQ to ADO.NET");complex.Add(2);complex.Add("LINW to XML");complex.Add(3);var expr = complex.OfType<int>();foreach (var item in expr){ Console.WriteLine(item);}
4. ToArray
ToArray操作符用于实现从一个IEnumberable序列创建一个数组。
1>. 原型定义
public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source);
2>. 示例
var expr = contex.Products .Select(p => p.ProductName) .ToArray();foreach (var item in expr){ Console.WriteLine(item);}
5. ToDictionary
ToDictionary操作符将序列中的所有返回元素插入到一个Dictionary(TKey, TValue)对象中。
1>. 原型定义
public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector);
2>. 示例
var expr = context.Provinces .ToDictionary(c => c.ProvinceID, c => c.ProvinceName);foreach (var item in expr){ Console.WriteLine("{0}-{1}", item.Key, item.Value);}
6. ToList
ToList操作符将一个IEnumberable序列集合转换为一个List<T>对象。
var expr = from c in contex.Categories select new { c.CategoryID, c.CategoryName };expr.ToList();
7. ToLookup
ToLookup操作符基于一个特定的主键,将返回的元素放置到一个Lookup(TKey TElement)对象中。Lookup是主键的集合,其中每个主键都映射到一个或多个值上。Lookup对象是一个一对多的字典。
var expr = contex.Categories .ToLookup(c => c.CategoryID,c=> c.CategoryName );foreach (var item in expr){ Console.WriteLine(item.Key); foreach (var i in item) { Console.WriteLine(i); }}
阅读全文
0 0
- LINQ系列:Linq to Object转换操作符
- LINQ系列:Linq to Object投影操作符
- LINQ系列:Linq to Object限制操作符
- LINQ系列:Linq to Object排序操作符
- LINQ系列:Linq to Object限制操作符
- LINQ系列:Linq to Object排序操作符
- LINQ系列:Linq to Object联接操作符
- LINQ系列:Linq to Object分组操作符
- LINQ系列:Linq to Object串联操作符
- LINQ系列:Linq to Object聚合操作符
- LINQ系列:Linq to Object集合操作符
- LINQ系列:Linq to Object生成操作符
- LINQ系列:Linq to Object元素操作符
- LINQ系列:Linq to Object相等操作符
- LINQ系列:Linq to Object量词操作符
- LINQ系列:Linq to Object分区操作符
- LINQ系列:LINQ to XML操作
- LINQ to OBJECT语句之Join操作符的使用
- NodeJS学习笔记-0
- Vmware12安装Redhat6.8
- 数组中重复的字
- 解决wine中文字体方块或乱码
- 包装类
- LINQ系列:Linq to Object转换操作符
- 科普菌:带你了解硬盘的读写原理
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 文档格式
- mysql函数根据经纬度,计算地球上两点之间的距离
- YII2框架学习 扩展篇(四) 依赖注入
- 对平衡二叉树的增加和删除
- <meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1">
- 卡布列克常数