型 | プロパティ | 内容 |
---|---|---|
DataColumn | Item[Int32] | 指定のインデックスの位置にあるDataColumn |
DataColumn | Item[String] | 指定の名前のDataColumn。存在しない場合はnull |
基本的に大文字/小文字が区別されますが、区別しないときに重複する項目がなければ、区別されません。Item[String] - DataColumnCollection.Item[] Property (System.Data) | Microsoft Learn
内部的にはDictionary<TKey,TValue>.TryGetValue()での取得に失敗しときに大文字/小文字を区別しない取得が試みられるため、最初から区別して指定すべきです。this - DataColumnCollection.cs
DataTable table = new DataTable(); table.Columns.Add("col"); table.Columns.Add("ab"); table.Columns.Add("AB"); DataColumn col1 = table.Columns["col"]; // ok DataColumn col2 = table.Columns["COL"]; // ok DataColumn col3 = table.Columns["Col"]; // ok DataColumn ab1 = table.Columns["ab"]; // ok DataColumn ab2 = table.Columns["AB"]; // ok DataColumn ab3 = table.Columns["Ab"]; // ArgumentException「指定された名前 'Ab' は、大文字小文字を区別しない場合は、コレクション オブジェクトの中で一致する名前が少なくとも 2 つあります。大文字小文字を区別する場合は、一致する名前はありません。」
メソッド | 機能 |
---|---|
Add() | DataColumnオブジェクトを作成して追加できる |
Remove(DataColumn) | コレクションから、指定のDataColumnを除去できる |
public System.Data.DataColumn Add ( string columnName, // 列の名前 (ColumnNameプロパティの値) Type type, // 列のデータの型 (DataTypeプロパティの値) string expression // 式 (Expressionプロパティの値) );
既に追加してあるDataColumnを、同一または異なるDataTableに追加しようとすると、ArgumentExceptionが投げられます。
DataColumn column = new DataColumn(); DataTable table1 = new DataTable(); DataTable table2 = new DataTable(); table1.Columns.Add(column); table1.Columns.Add(column); // ArgumentException「列 'Column1' は既にこの DataTable に属しています。」 table2.Columns.Add(column); // ArgumentException「列 'Column1' は既に別の DataTable に属しています。」
コレクションから列を除去すると、その列のデータも除去されます。
DataTable table = new DataTable(); DataColumn column1 = table.Columns.Add(); DataColumn column2 = table.Columns.Add(); DataColumn column3 = table.Columns.Add(); DataRow row = table.Rows.Add(1, 2, 3); row.AcceptChanges(); table.Columns.Remove(column2); object[] obj = row.ItemArray; // "1", "3" (除去した列のデータが失われている) DataRowState state = row.RowState; // Unchanged
型 | イベント | 発生タイミング |
---|---|---|
CollectionChangeEventHandler | CollectionChanged | 列が追加または除去されて、コレクションが変更されるとき |
列挙子 | |
---|---|
Add | |
Refresh | |
Remove |