c# 3.0 语言的新特性(四)

 

C# 3.0语言新特性(四) - 查询表达式

 

在C# 3.0语言中,查询表达式成为编程语言的一个重要组成部分,它可以完成诸如以前一些SQL语句而完成的功能,该表达式可以得到很好的编译时语法检查。

例子:

void QueryExpressionDefinition()

        {

            var objContacts = new List<Contact>();

 

            objContacts.Add(new Contact("Michael", "520-331-2718",

               "33140 SW Liverpool Lane", "WA"));

            objContacts.Add(new Contact("Jennifer", "503-998-1177",

                "1245 NW Baypony Dr", "OR"));

            objContacts.Add(new Contact("Sean", "515-127-3340",

                 "55217 SW Estate Dr", "WA"));

 

            var WAContacts = from c in objContacts

                             where c.sState == "WA"

                             select new { c.sName,c.sPhone };

 

            Console.WriteLine("Contacts in the state of Washington: ");

 

            foreach (var c in WAContacts)

            {

                Console.WriteLine("Name: {0}, Phone: {1}", c.sName , c.sPhone );

  }

        }

        public class Contact

        {

            public string sName;

            public string sPhone;

            public string sAddress;

            public string sState;

 

            public Contact(string name, string phone,

                string address, string state)

            {

                sName = name;

                sPhone = phone;

                sAddress = address;

                sState = state;

            }

        }

 

执行结果是:

Contacts in the state of Washington:

Name: Michael, Phone: 520-331-2718

Name: Sean, Phone: 515-127-3340

请按任意键继续. . .

其中,var WAContacts = from c in objContacts

                             where c.sState == "WA"

                             select new { c.sName,c.sPhone };

是查询表达式,它的基本含义是:

var WAContancts = objContacts.

                Where( c=> c.sState == “WA”)

                .Select( c=> new Contact(c.sName,c.sPhone));

 

其中的参数是Lambda表达式,它的含义是前面介绍过的delegate声明的匿名方法。

而现在的查询表达式则用到了扩展方法

(待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值