文字列のリストのリストがあり、それを別のメソッドに渡したい。
私はリストについて少し混乱していて、それらを処理する方法がわかりません。
public Form(string[] header, List<> data)
Listはデータ型(またはオブジェクト)ですか?エラーVS2010は、タイプを予期していることを示しているためです。
List<>-はジェネリックデータ型です。リストの項目のタイプを角かっこで囲む必要があります。この場合、これは文字列のリストです- List<string>
。
public Form(string[] header, List<List<string>> data)
List<T>
建物タイプのテンプレートとして見る必要があります。ジェネリック型として知られていますが、実際には型ではありません。
プログラムを実行すると、そのようなタイプのオブジェクトを作成できません。これは混乱を招くところです。これらは、型パラメーターを使用して新しい型を作成するために使用されます。型パラメーターは、ジェネリック型に渡す型です。例えば:
List<T>
-ジェネリック型T
部分-タイプパラメータ。Tは任意のタイプにすることができます。string
List<string>
新しいタイプを作成しましList<string>
た。タイプパラメータごとに、C#コンパイラは新しいタイプを作成します。したがってList<string>
、とは完全に異なりList<int>
ます。
もちろん、内部のそれよりも複雑です。タイプは、実際には実行時に.NETFrameworkによって作成されます。これにより、アプリケーションの実行中に作成するタイプを決定できます。ただし、C#コンパイラにはコンパイル時の型チェックがあるため、この概念も認識しており、ジェネリック型に対して単に無効な操作を実行することはできません。
警告:テンプレートはC ++の既存の概念であり、C#ジェネリックと混同しないでください。
これを使って:List<List<string>> data