程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#3.0匿名方法的實現與應用(2)

C#3.0匿名方法的實現與應用(2)

編輯:關於C語言

大家可以看到在VS編輯器的智能提示中,編譯器已經找到了變量的實際類型。這個特性在結合LINQ語言進行數據查詢時顯得格外有用:

比如我們現在有一個UserInfo類,它包含了一個用戶的許多信息,姓名,年齡,住址等等。

class UserInfo
{
public string firstname;
public string lastname;
public int age;
public string address;
//...
}

我們現在要根據年齡對數據進行一些檢索,但我們希望檢索結果只需要包含用戶的姓名就夠了,也就是firstname,和lastname這兩個字段。這時候,匿名方法就可以派上用場了。

var result = from userinfo in infoList
where userinfo.age > 20 && userinfo.age < 35
select new { userinfo.firstname, userinfo.lastname };

大家可以看到,我們並沒有返回UserInfo的整個類型,而是返回了一個只包含firstname和lastname的數據類型,編譯器能夠自動為我們識別出result的類型。下面我們只需要一個foreach語句就可以把數據打印出來。

foreach (var var_info in result)
{
Console.WriteLine(var_info.firstname + " " + var_info.lastname);
}

這裡也同樣用到了匿名類型(var var_info),下面這張圖可以看出編譯器可以識別出var_info的實際型別。

有些文章在介紹C#3.0特性時會把它作為單獨的特性,但我覺得這個特性也是屬於編譯器自動探測類型的范疇,所以仍然將它歸類到匿名類型中來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved