在學習List<T>, 其實List<T>跟Array有點相似所以問了一下Google大神,發現兩個不錯的說明
[C#] 陣列 & List<T>
https://kw0006667.wordpress.com/2013/04/03/c-陣列-listt/
下面的 code主要是抄考這篇的,只是弄了一個Unity的版本,用上Lambda真的廷方便的呀,Lumbda也是最近才學習的!左邊是參數(parameters), 右邊則是指令(instructions),這樣就不用開一個有名的function那麽麻煩!
例如這一句,(x, y)是參數,reutrn -x.Score.CompareTo(y.Score) 則是指令,這樣就可以由大到小排序了~
Array與List
http://sharecoder.blogspot.hk/2012/10/arraylist.html
//Array使用連續記憶體空間,List【不需要】使用連續記憶體空間。//
[C#] 陣列 & List<T>
https://kw0006667.wordpress.com/2013/04/03/c-陣列-listt/
下面的 code主要是抄考這篇的,只是弄了一個Unity的版本,用上Lambda真的廷方便的呀,Lumbda也是最近才學習的!左邊是參數(parameters), 右邊則是指令(instructions),這樣就不用開一個有名的function那麽麻煩!
students.Sort((x, y) => { return -x.Score.CompareTo(y.Score); });
例如這一句,(x, y)是參數,reutrn -x.Score.CompareTo(y.Score) 則是指令,這樣就可以由大到小排序了~
Array與List
http://sharecoder.blogspot.hk/2012/10/arraylist.html
//Array使用連續記憶體空間,List【不需要】使用連續記憶體空間。//
重點呀!長知識了~
好了看看測試的程式
好了看看測試的程式
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Test: MonoBehaviour {
public struct Student
{
public string Name;
public int Score;
public Student(string name, int score)
{
this.Name = name;
this.Score = score;
}
}
void Start()
{
List students = new List()
{
new Student("Tim", 80),
new Student("Jimmy", 76),
new Student("David", 92),
new Student("Jason", 57),
new Student("Amy", 40)
};
// 利用 Lambda 運算式,由大到小排序
students.Sort((x, y) => { return -x.Score.CompareTo(y.Score); });
foreach (var item in students)
{
Debug.Log(item.Name + " : " + item.Score);
}
}
}
結果:
『右邊是參數(parameters), 左邊則是指令(instructions)』 <= 這句話好像寫反了。
回覆刪除謝修正, 小弟有點左右不分 XD
刪除