bloggerAds

2017年7月10日 星期一

List(四)-LINQ

最近再實作排行榜功能,
想說只記錄最高分數前三筆,
想說每次都要一筆筆比較實再是太麻煩了,
就用一個list存起來,
排列後直接取前面三筆分數高的紀錄起來就好


上網查了一下,
發現LINQ友提供相關方法,
棒棒搭,
紀錄一下!

先引用:
using System.Linq;

List.Take(int cout):
功用:可以取出List前面n筆的資料
部分程式碼:
void ListTake()
{
 List<int> list = new List<int> ();
 list.Add (80);
 list.Add (30);
 list.Add (50);
 list.Add (70);
 list.Add (20);
 list.Sort ((x,y)=>{return - x.CompareTo(y);});
 list = list.Take (3).ToList<int> ();
 for (int i = 0; i < list.Count; i++) {
   Debug.Log ("No " + i.ToString () +" is :" + list [i]);
 }
}
output:---
No 0 is :80
No 1 is :70
No 2 is :50
------

後來想說,
那麼前三名以外的,
給個安慰獎好了,
想取得前三名之後的List
Skip就派上用場了!!!

List.Skip(int count):
功用:跳過前面n筆資料

部分程式碼:
void ListSkip()
{
 List<int> list = new List<int> ();
 list.Add (80);
 list.Add (30);
 list.Add (50);
 list.Add (70);
 list.Add (20);
 list.Sort ((x,y)=>{return - x.CompareTo(y);});
 list = list.Skip (3).ToList<int> ();
 for (int i = 0; i < list.Count; i++) {
  Debug.Log ( list [i]);
 }
}
output:---
30
20
------

沒有留言:

張貼留言