使用lambda表達式進行對象結合的篩選操作

来源:http://www.cnblogs.com/xakml/archive/2017/06/15/7017459.html
-Advertisement-
Play Games

1 public class Person : BaseDomain 2 { 3 long _id; 4 string firstName; 5 string secondName; 6 string comments; 7 8 public Person() 9 {} 10 11 public P ...


 1 public class Person : BaseDomain
 2     {
 3         long _id;
 4         string firstName;
 5         string secondName;
 6         string comments;
 7 
 8         public Person()
 9         {}
10             
11         public Person(long id)
12         {
13             this._id = id;
14         }
15         public Person(long id,string firstName, string secondName)
16         {
17             this._id = id;
18             this.firstName = firstName;
19             this.secondName = secondName;
20             comments = String.Empty;
21         }
22         public Person(long id,string firstName, string secondName, string comments)
23             : this(id,firstName, secondName)
24         {
25             this.comments = comments;
26         }
27       
28         public string FirstName
29         {
30             get { return firstName; }
31             set { firstName = value; }
32         }
33         public string SecondName
34         {
35             get { return secondName; }
36             set { secondName = value; }
37         }
38         public string Comments
39         {
40             get { return comments; }
41             set { comments = value; }
42         }
43         public override string ToString()
44         {
45             return string.Format("FirstName: {0}\tSecondName: {1}\tComment: {2}", this.firstName, this.secondName, this.comments);
46         }
47     }
View Code

上面是測試需要的簡單類型:Person

 1     var list = new List<Person>(5);
 2     list.Add(new Person(1,"咬金","","拿斧子砍人的那個家伙");
 3     list.Add(new Person(2,"咬金","","拿斧子砍人的那個家伙");
 4     list.Add(new Person(3,"貂蟬","","3技能很厲害哦");
 5     list.Add(new Person(4,"昭君","","適合打團戰");
 6     list.Add(new Person(5,"亞瑟","","狠狠厚的肉");
 7 
 8     //進行去重操作,需要先引入linq引用"using System.Linq; "
 9     var result_list = list.GroupBy(obj=>obj.FirstName).Select(g=>g.First()).ToList();
10 
11     foreach(var item in result_list)
12     {
13         Console.WriteLine(item);
14     }
View Code

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 設計原則構成了設計模式賴以構建的基礎。通過遵循經過驗證的設計原則,自己的代碼會變得更加靈活、更加能夠適應變化,而且可維護性更佳。 常見設計原則 簡約原則(KISS) KISS原則的目標就是讓代碼保持簡潔但不要過於簡陋,從而避免引入任何不必要但複雜度。 不要重覆自己(DRY) BRY原則但目的是通過將 ...
  • 業務需要動態給圖片增加文字(書本的封面圖片),修改字體大小、字體、顏色、控制位置 測試代碼: 字體選擇: 黑體:SimHei 宋體:SimSun 新宋體:NSimSun 仿宋:FangSong 楷體:KaiTi 仿宋_GB2312:FangSong_GB2312 楷體_GB2312:KaiTi_GB ...
  • 1.十進位 轉 二進位 將十進位數不斷地除2,將所有餘數倒敘填寫,即可得到所需二進位數據。 2. 二進位 轉 十進位 將二進位各位上的值(0或1)乘2的(n-1)次方,將每位結果相加。其中,n表示二進位中從右向左的位數(從1開始計); 3. 自帶的轉換方式 C#.Net自帶的進位轉換方式: 4. 十 ...
  • 1、源起: VCU10項目,使用了Noto Sans字體,的確漂亮。但驗證在win7下,其顯示韓文為亂碼,頗為頭痛。 其界面顯示如圖: 度娘之,得Noto Sans又有CJK字體,顧名思義,其為支持中日韓文,且其體積巨大,不宜做為方案,繼續思考! 2、Font.GdiCharSet 屬性 也是沒有辦 ...
  • public delegate void ProcessHandler(Model model);//委托申明 ProcessHandler msghandler = new ProcessHandler(ProcessMsg);//實例化一個委托IAsyncResult iasyn = msgha ...
  • 出現此問題的原因是主要是因為拼接的SQL語句過長導致, 一般來說Oracle的SQL執行語句,英文不能超過4000字元,中文不能超過2000字元,所以一旦Clob欄位的內容比較多,就會出現拼接的SQL 的長度過長,從而導致問題的出現。 比較簡單的解決方法就是使用參數化查詢來執行SQL語句,示例代碼如 ...
  • 最近做一個項目,看到以前同事寫的進度條效果不錯,所以,拿來簡化了下,不炫,但是項目中還是夠用的。 還是,先來看下調用以後的效果 1、因為ProgressbBar的Foreground顯示不得不一樣,所以,要有一個參數去給控制項進行設置,因此定義了一個參數值ForegroundColor 代碼里有這麼一 ...
  • 程式在VS運行中程式一切正常,但是發佈配置在IIS中出現了時間格式轉換錯誤問題"DateTime轉換失敗"。修改時間格式是沒有任何作用的,修改配置表也沒有左右。最後研究發現,因為在修改配置表時沒有修改完,有很多的配置表都涉及到時間問題。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...