名前空間: System.Collections.Generic
パブリック クラス List
ジェネリックの利点: C# 言語を使用してオブジェクト指向プログラムを作成する際に、大幅な効率と柔軟性が追加されます。値型の強制的なボックス化とボックス化解除、または参照型のダウンキャストがないため、パフォーマンスが向上します。
T はリスト内の要素のタイプです
例: List
コレクションをパラメータとしてリストを作成します
string[] temArr = { "Ha", "Hunter", 「トム」、「リリー」、「ジェイ」、「ジム」、「クク」、「ロク」 };
List
要素を追加します:
1 .List.Add(T item) 要素を追加します
例: mList.Add("John");
2. List.AddRange(IEnumerable
string ] temArr = { "ハ","ハンター", "トム", "リリー", "ジェイ", "ジム", "クク", "ロク" };
foreach (T element in mList) T的类型与mList声明时一样 { Console.WriteLine(element); }
foreach (string s in mList) { Console.WriteLine(s); }
3. List.RemoveRange(int index, int count);
添字インデックスから始めて、count 個の要素を削除します
例: mList.RemoveRange(3 , 2);
要素がリスト内にあるかどうかを判断します:
List。Contains(T item) true または false を返します。非常に実用的です
例:
if (mList.Contains("Hunter")) { Console.WriteLine("There is Hunter in the list"); } else { mList.Add("Hunter"); Console.WriteLine("Add Hunter successfully."); }
リスト内の要素を並べ替えます:
リスト ( ) デフォルトは要素の最初の文字を昇順にします例: mList.Sort();List 内の要素の順序を反転します:List。Sort () と組み合わせて使用できます。 ) 、目的の効果を実現するには
例: mList.Sort();
リストのクリア: List.Clear ()
例: mList.Clear(); リスト内の要素の数を取得します。 . Count () int 値を返します 例:int count = mList.Count();
Console.WriteLine("リスト内の要素の数: " +count); 2. :
例として使用されるリスト:
string[] temArr = { Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", " "Locu" };
mList.AddRange(temArr);
List.Find メソッド: 指定された述語で定義された条件に一致する要素を検索し、リスト全体で最初に一致した要素を返します。
public T Find(Predicate
Predicate は、渡されたオブジェクトがデリゲートで定義された条件に一致する場合に true を返すメソッドへのデリゲートです。現在のリストの要素は 1 つずつ述語デリゲートに渡され、最初の要素から始まり最後の要素で終わるまで、リスト内を前方に移動します。一致するものが見つかると処理は停止します。
述語は関数またはラムダ式に委任できます:
string listFind = mList.Find(name => //name是变量,代表的是mList { //中元素,自己设定 if (name.Length > 3) { return true; } return false; }); Console.WriteLine(listFind); //输出是Hunter
E.g.:
string listFind1 = mList.Find(ListFind); //委托给ListFind函数
Console.WriteLine(listFind); //输出是Hunter
ListFind函数:
public bool ListFind(string name) { if (name.Length > 3) { return true; } return false; }
用法与List.Find相同。
List.TrueForAll方法: 确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。
public bool TrueForAll(Predicate
委托给拉姆达表达式:
E.g.:
bool flag = mList.TrueForAll(name => { if (name.Length > 3) { return true; } else { return false; } } ); Console.WriteLine("True for all: "+flag); //flag值为false
委托给一个函数,这里用到上面的ListFind函数:
E.g.:
bool flag = mList.TrueForAll(ListFind); //委托给ListFind函数
Console.WriteLine("True for all: "+flag); //flag值为false
这两种方法的结果是一样的。
List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素。
public List
E.g.:
List<string> subList = mList.FindAll(ListFind); //委托给ListFind函数 foreach (string s in subList) { Console.WriteLine("element in subList: "+s); }
这时subList存储的就是所有长度大于3的元素
List.Take(n): 获得前n行 返回值为IEnumetable
E.g.:
IEnumerable<string> takeList= mList.Take(5); foreach (string s in takeList) { Console.WriteLine("element in takeList: " + s); }
这时takeList存放的元素就是mList中的前5个
List.Where方法:检索与指定谓词所定义的条件相匹配的所有元素。跟List.FindAll方法类似。
E.g.:
IEnumerable<string> whereList = mList.Where(name => { if (name.Length > 3) { return true; } else { return false; } }); foreach (string s in subList) { Console.WriteLine("element in subList: "+s); }
这时subList存储的就是所有长度大于3的元素
List.RemoveAll方法:移除与指定的谓词所定义的条件相匹配的所有元素。
public int RemoveAll(Predicate
E.g.:
mList.RemoveAll(name => { if (name.Length > 3) { return true; } else { return false; } }); foreach (string s in mList) { Console.WriteLine("element in mList: " + s); }
这时mList存储的就是移除长度大于3之后的元素。
List
比如
List
intList.Add(34); //添加
intList.Remove(34);//删除
intList.RemoveAt(0); //删除位于某处的元素
intList.Count; //链表长度
还有Insert,Find,FindAll,Contains等方法,也有索引方法 intList[0] = 23;
1.减少了装箱拆箱
2.便于编译时检查数据类型
List
更多C# List