在C#的List集合的操作中,有時候我們需要根據相關條件快速從List集合中獲取到第一個符合條件的實體對象,例如有個全校班級的List集合,我們需要根據班級代碼快速從List集合中查找出班級信息。可以使用傳統的for或者foreach迴圈來單獨比對查詢來實現,其實還可以通過Lambda表達式中的Fi ...
在C#的List集合的操作中,有時候我們需要根據相關條件快速從List集合中獲取到第一個符合條件的實體對象,例如有個全校班級的List集合,我們需要根據班級代碼快速從List集合中查找出班級信息。可以使用傳統的for或者foreach迴圈來單獨比對查詢來實現,其實還可以通過Lambda表達式中的FirstOrDefault方法快速來查找,只需一條語句即可查找出來。
例如有個全校班級信息的List集合List<StudentClass> classList,需要快速從classList集合中查找班級代碼ClassCode為A101的班級實體記錄,可使用下列語句:
StudentClass whereClass=classList.FirstOrDefault(t=>t.ClassCode=="A101");
上述語句中t是lambda表示式的一種寫法,代表List集合裡面的對象實體,你可命名為其他變數名也可以,例如a,b等。
如果List集合含有相應的符合條件的實體記錄,則FirstOrDefault返回查找到的第一條實體記錄信息,否則FirstOrDefault方法返回為NULL。
因此如果無法100%確保List集合中含有符合條件的記錄,則需要在使用前判斷是否為NULL。
上述Lambda表達式也可以加入相應的函數以及多個條件,例如加入SchoolName名稱包含實驗倆字的記錄,可通過下列語句實現。
StudentClass whereClass=classList.FirstOrDefault(t=>t.ClassCode=="A101"&&t.SchoolName.Contain("實驗"));
備註:原文轉載自C#使用FirstOrDefault方法快速查找List集合中符合條件的第一個實體_IT技術小趣屋。