關於C#擴充方法

來源:互聯網
上載者:User

今天在論壇上看到一問題,是這樣描述的:

 

我有個student.cs 模型

class student{public string Sname{get;set;}public int Money{get;set;}} 

已有的集合

            IList<student> list = new List<student>();            student s1 = new student {Sname = "周星馳" ,60};            student s2 = new student {Sname = "劉德華" ,80};

--------------------------------------------------------
我的意圖如下
當我再往list添加一個人的時候,比如添加{"吳孟達",50}的時候集合正常添加
但當我再添加周星馳{"周星馳",10}的時候,因為list已經有周星馳了,所以最後的結果變成{"周星馳",70}

總的來說就是遇到同一個人的時候,就把money相加,而集合的數量不變。

 

讓我想到可以使用C# 擴充方法來實現

 

 

 

現將代碼記錄在此 方便以後查看

 

 

static class Extensions<br /> {<br /> internal static void AddStudent(this List<student> list, student item)<br /> {<br /> student temp = list.SingleOrDefault(s => s.Sname == item.Sname);<br /> if (temp == null) list.Add(item);<br /> else temp.Money += item.Money;<br /> }<br /> }<br /> class student<br /> {<br /> public string Sname { get; set; }<br /> public int Money { get; set; }<br /> }<br /> public partial class CSSTest : System.Web.UI.Page<br /> {<br /> protected void Page_Load(object sender, EventArgs e)<br /> {<br /> var list = new List<student>();<br /> list.AddStudent(new student { Sname = "周星馳", Money = 60 });<br /> list.AddStudent(new student { Sname = "劉德華", Money = 80 });<br /> list.AddStudent(new student { Sname = "周星馳", Money = 10 });<br /> list.ForEach(l => Response.Write(l.Sname+" "+l.Money));<br /> /*<br /> * 結果:<br /> * 周星馳 70<br /> * 劉德華 80<br /> */<br /> }<br /> } 

 

 

使用擴充方法  

個人感覺方便在於VS智能感知同樣能感知到

且注意此擴充方法的小表徵圖 和別的不一樣

 

 

MSDN參考: http://msdn.microsoft.com/zh-cn/library/vstudio/bb383977.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.