深入理解 c# 第十四章 查询动态元素的集合 动态代码的约束

    class DynamicLinq
    {
        static void Main()//查询动态元素的集合 动态代码的约束
        {
            var list = new List<dynamic> { 50, 5m, 5d, 3 };
			//Count = 4
            var query = from number in list
                        where number > 4
						//50 5 5.0
                        select (number / 20) * 10;
//{System.Linq.Enumerable.WhereSelectListIterator<object,object>}						

            foreach (var item in query)
			//item 20 2.5 2.5
            {
                Console.WriteLine(item);
            }
        }
    }


LINQ与dynamic的交互不会导致任何损失。可以拥有一个以dynamic为元素类型的强类型

集合,你还可以使用扩展方法、Lambda表达式甚至查询表达式。该集合可以包含不同类型
的对象,它们在执行时将表现出恰当的行为。
  将打印20、2.50和2.5。将元素除以20再乘以10,可以展示decimal和double的区别:
decimal类型将以非规范化的方式保留精度,因此显示的为2.50而非2.5。第一个值为整形,
因此将使用整型的除非,结果为20而非25。

输出
20
2.50
2.5

猜你喜欢

转载自blog.csdn.net/eyetired/article/details/80377743