深入理解 c# 第十一章 无价值的查询去打印用户列表

   class ShowAllUsers
    {
        static void Main()
        {
            var query = from user in SampleData.AllUsers 
                        select user;
//query
//System.Linq.Enumerable.WhereSelectListIterator
            foreach (var user in query)
//foreach 后 query  后 in 调用 select 后 var user
// var user多次赋值 null 
//{User: Tim Trotter (Tester)}
//{User: Tara Tutu (Tester)}	
//{User: Deborah Denton (Developer)}
//{User: Darren Dahlia (Developer)}
//{User: Mary Malcop (Manager)}
//{User: Colin Carton (Customer)}

            {
                Console.WriteLine(user);//WriteLine会调用重载的ToString方法
				//为每个实体重写了ToString方法
            }
        }
    }
	
    public class User
    {
        public string Name { get; set; }
        public UserType UserType { get; set; }

        public User (string name, UserType userType)
        {
            Name = name;
            UserType = userType;
        }

        public override string ToString()
        {
            return string.Format("User: {0} ({1})", Name, UserType);
        }
    }

     public static class Users
        {
            public static readonly User TesterTim = new User("Tim Trotter", UserType.Tester);
            public static readonly User TesterTara = new User("Tara Tutu", UserType.Tester);
            public static readonly User DeveloperDeborah = new User("Deborah Denton", UserType.Developer);
            public static readonly User DeveloperDarren = new User("Darren Dahlia", UserType.Developer);
            public static readonly User ManagerMary = new User("Mary Malcop", UserType.Manager);
            public static readonly User CustomerColin = new User("Colin Carton", UserType.Customer);
        }

    public enum UserType : byte
    {
        Customer,
        Developer,
        Tester,
        Manager,
    }	


以数据源作为开始,以选择作为结束
  在C#3中每个查询表达式都以同样的方式开始--声明一个数据序列的数据源:
from element in source
  element只是一个标识符,前面可以放置一个类型名称。 大多数情况下,你
都不需要类型名称。source是一个普通的表达式。在第一个子句出现之后,
许多不同的事情会发生,不过迟早都会以一个select子句或group子句来结束。
  
select expression
  select子句被称为投影。

  把两者结合在一起,然后用这个微不足道的表达式来作为我们的简单查询。

  我们用这个查询表达式介绍两个概念,使用转换过程,范围变量

输出
User: Tim Trotter (Tester)
User: Tara Tutu (Tester)
User: Deborah Denton (Developer)
User: Darren Dahlia (Developer)
User: Mary Malcop (Manager)
User: Colin Carton (Customer)


猜你喜欢

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