NameValueCollection クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public ref class NameValueCollection : System::Collections::Specialized::NameObjectCollectionBase
public class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase
[System.Serializable]
public class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase
type NameValueCollection = class
inherit NameObjectCollectionBase
[<System.Serializable>]
type NameValueCollection = class
inherit NameObjectCollectionBase
Public Class NameValueCollection
Inherits NameObjectCollectionBase
- 継承
- 派生
- 属性
例
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintKeysAndValues( NameValueCollection^ myCol );
void PrintKeysAndValues2( NameValueCollection^ myCol );
int main()
{
// Creates and initializes a new NameValueCollection.
NameValueCollection^ myCol = gcnew NameValueCollection;
myCol->Add( "red", "rojo" );
myCol->Add( "green", "verde" );
myCol->Add( "blue", "azul" );
myCol->Add( "red", "rouge" );
// Displays the values in the NameValueCollection in two different ways.
Console::WriteLine( "Displays the elements using the AllKeys property and the Item (indexer) property:" );
PrintKeysAndValues( myCol );
Console::WriteLine( "Displays the elements using GetKey and Get:" );
PrintKeysAndValues2( myCol );
// Gets a value either by index or by key.
Console::WriteLine( "Index 1 contains the value {0}.", myCol[ 1 ] );
Console::WriteLine( "Key \"red\" has the value {0}.", myCol[ "red" ] );
Console::WriteLine();
// Copies the values to a string array and displays the string array.
array<String^>^myStrArr = gcnew array<String^>(myCol->Count);
myCol->CopyTo( myStrArr, 0 );
Console::WriteLine( "The string array contains:" );
for each ( String^ s in myStrArr )
Console::WriteLine( " {0}", s );
Console::WriteLine();
// Searches for a key and deletes it.
myCol->Remove( "green" );
Console::WriteLine( "The collection contains the following elements after removing \"green\":" );
PrintKeysAndValues( myCol );
// Clears the entire collection.
myCol->Clear();
Console::WriteLine( "The collection contains the following elements after it is cleared:" );
PrintKeysAndValues( myCol );
}
void PrintKeysAndValues( NameValueCollection^ myCol )
{
Console::WriteLine( " KEY VALUE" );
for each ( String^ s in myCol->AllKeys )
Console::WriteLine( " {0,-10} {1}", s, myCol[s] );
Console::WriteLine();
}
void PrintKeysAndValues2( NameValueCollection^ myCol )
{
Console::WriteLine( " [INDEX] KEY VALUE" );
for ( int i = 0; i < myCol->Count; i++ )
Console::WriteLine( " [{0}] {1,-10} {2}", i, myCol->GetKey( i ), myCol->Get( i ) );
Console::WriteLine();
}
/*
This code produces the following output.
Displays the elements using the AllKeys property and the Item (indexer) property:
KEY VALUE
red rojo,rouge
green verde
blue azul
Displays the elements using GetKey and Get:
[INDEX] KEY VALUE
[0] red rojo,rouge
[1] green verde
[2] blue azul
Index 1 contains the value verde.
Key "red" has the value rojo,rouge.
The string array contains:
rojo,rouge
verde
azul
The collection contains the following elements after removing "green":
KEY VALUE
red rojo,rouge
blue azul
The collection contains the following elements after it is cleared:
KEY VALUE
*/
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesNameValueCollection {
public static void Main() {
// Creates and initializes a new NameValueCollection.
NameValueCollection myCol = new NameValueCollection();
myCol.Add( "red", "rojo" );
myCol.Add( "green", "verde" );
myCol.Add( "blue", "azul" );
myCol.Add( "red", "rouge" );
// Displays the values in the NameValueCollection in two different ways.
Console.WriteLine( "Displays the elements using the AllKeys property and the Item (indexer) property:" );
PrintKeysAndValues( myCol );
Console.WriteLine( "Displays the elements using GetKey and Get:" );
PrintKeysAndValues2( myCol );
// Gets a value either by index or by key.
Console.WriteLine( "Index 1 contains the value {0}.", myCol[1] );
Console.WriteLine( "Key \"red\" has the value {0}.", myCol["red"] );
Console.WriteLine();
// Copies the values to a string array and displays the string array.
String[] myStrArr = new String[myCol.Count];
myCol.CopyTo( myStrArr, 0 );
Console.WriteLine( "The string array contains:" );
foreach ( String s in myStrArr )
Console.WriteLine( " {0}", s );
Console.WriteLine();
// Searches for a key and deletes it.
myCol.Remove( "green" );
Console.WriteLine( "The collection contains the following elements after removing \"green\":" );
PrintKeysAndValues( myCol );
// Clears the entire collection.
myCol.Clear();
Console.WriteLine( "The collection contains the following elements after it is cleared:" );
PrintKeysAndValues( myCol );
}
public static void PrintKeysAndValues( NameValueCollection myCol ) {
Console.WriteLine( " KEY VALUE" );
foreach ( String s in myCol.AllKeys )
Console.WriteLine( " {0,-10} {1}", s, myCol[s] );
Console.WriteLine();
}
public static void PrintKeysAndValues2( NameValueCollection myCol ) {
Console.WriteLine( " [INDEX] KEY VALUE" );
for ( int i = 0; i < myCol.Count; i++ )
Console.WriteLine( " [{0}] {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i) );
Console.WriteLine();
}
}
/*
This code produces the following output.
Displays the elements using the AllKeys property and the Item (indexer) property:
KEY VALUE
red rojo,rouge
green verde
blue azul
Displays the elements using GetKey and Get:
[INDEX] KEY VALUE
[0] red rojo,rouge
[1] green verde
[2] blue azul
Index 1 contains the value verde.
Key "red" has the value rojo,rouge.
The string array contains:
rojo,rouge
verde
azul
The collection contains the following elements after removing "green":
KEY VALUE
red rojo,rouge
blue azul
The collection contains the following elements after it is cleared:
KEY VALUE
*/
' The following code example demonstrates several of the properties and methods of ListDictionary.
Imports System.Collections
Imports System.Collections.Specialized
Public Class SamplesNameValueCollection
Public Shared Sub Main()
' Creates and initializes a new NameValueCollection.
Dim myCol As New NameValueCollection()
myCol.Add("red", "rojo")
myCol.Add("green", "verde")
myCol.Add("blue", "azul")
myCol.Add("red", "rouge")
' Displays the values in the NameValueCollection in two different ways.
Console.WriteLine("Displays the elements using the AllKeys property and the Item (indexer) property:")
PrintKeysAndValues(myCol)
Console.WriteLine("Displays the elements using GetKey and Get:")
PrintKeysAndValues2(myCol)
' Gets a value either by index or by key.
Console.WriteLine("Index 1 contains the value {0}.", myCol(1))
Console.WriteLine("Key ""red"" has the value {0}.", myCol("red"))
Console.WriteLine()
' Copies the values to a string array and displays the string array.
Dim myStrArr(myCol.Count) As String
myCol.CopyTo(myStrArr, 0)
Console.WriteLine("The string array contains:")
Dim s As String
For Each s In myStrArr
Console.WriteLine(" {0}", s)
Next s
Console.WriteLine()
' Searches for a key and deletes it.
myCol.Remove("green")
Console.WriteLine("The collection contains the following elements after removing ""green"":")
PrintKeysAndValues(myCol)
' Clears the entire collection.
myCol.Clear()
Console.WriteLine("The collection contains the following elements after it is cleared:")
PrintKeysAndValues(myCol)
End Sub
Public Shared Sub PrintKeysAndValues(myCol As NameValueCollection)
Console.WriteLine(" KEY VALUE")
Dim s As String
For Each s In myCol.AllKeys
Console.WriteLine(" {0,-10} {1}", s, myCol(s))
Next s
Console.WriteLine()
End Sub
Public Shared Sub PrintKeysAndValues2(myCol As NameValueCollection)
Console.WriteLine(" [INDEX] KEY VALUE")
Dim i As Integer
For i = 0 To myCol.Count - 1
Console.WriteLine(" [{0}] {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i))
Next i
Console.WriteLine()
End Sub
End Class
'This code produces the following output.
'
'Displays the elements using the AllKeys property and the Item (indexer) property:
' KEY VALUE
' red rojo,rouge
' green verde
' blue azul
'
'Displays the elements using GetKey and Get:
' [INDEX] KEY VALUE
' [0] red rojo,rouge
' [1] green verde
' [2] blue azul
'
'Index 1 contains the value verde.
'Key "red" has the value rojo,rouge.
'
'The string array contains:
' red
' green
' blue
'
'
'The collection contains the following elements after removing "green":
' KEY VALUE
' red rojo,rouge
' blue azul
'
'The collection contains the following elements after it is cleared:
' KEY VALUE
'
'
注釈
このコレクションはNameObjectCollectionBaseクラスに基づいています。 コレクションの各要素は、キーと値のペアです。 ただしNameObjectCollectionBaseとは異なり、このクラスは、1 つのキーの下に複数の文字列値を格納できます。
このクラスは、ヘッダー、クエリ文字列、およびフォームのデータに使用できます。
この型のコレクションは、要素の順序を保持せず、コレクションを列挙する場合、特定の順序は保証されません。
NameValueCollectionの容量は、NameValueCollectionが保持できる要素の数です。 要素が追加されると、その容量は、再割り当ての必要性に応じて自動的に増加します。
ハッシュ コード プロバイダーは、NameValueCollection内のキーにハッシュ コードを与えます。 既定のハッシュ コード プロバイダーは、CaseInsensitiveHashCodeProviderです。
比較演算子は、2 つのキーが等しいかどうかを判断します。 既定の比較子は、インバリアント カルチャの規則を使用するCaseInsensitiveComparerです; キーの比較は既定では大文字と小文字を区別しません。 大文字と小文字を区別してキーの比較を実行するには、NameValueCollection.NameValueCollection(IEqualityComparer)コンス トラクターを呼び出し、equalityComparer
引数の値としてStringComparer.CurrentCulture、StringComparer.InvariantCulture、またはStringComparer.Ordinalを指定します。 比較と並べ替えのカルチャのしくみの詳細については、次を参照してくださいカルチャを認識しない文字列操作を実行する。
キーまたは値としてnull
を許可します。
注意事項
Getメソッドは、指定したキーが見つからないために返されたnull
と、キーに関連付けられている値がnull
であるために返されたnull
を区別しません。
コンストラクター
NameValueCollection() |
空で、既定の初期量を備え、大文字と小文字を区別しない既定のハッシュ コード プロバイダーと大文字と小文字を区別しない既定の比較子を使用する、NameValueCollection クラスの新しいインスタンスを初期化します。 |
NameValueCollection(IEqualityComparer) |
空で、既定の初期量を備え、指定した NameValueCollection オブジェクトを使用する、IEqualityComparer クラスの新しいインスタンスを初期化します。 |
NameValueCollection(IHashCodeProvider, IComparer) |
古い.
古い.
空で、既定の初期量を備え、指定したハッシュ コード プロバイダーと指定した比較子を使用する、NameValueCollection クラスの新しいインスタンスを初期化します。 |
NameValueCollection(Int32) |
空で、指定した初期量を備え、大文字と小文字を区別しない既定のハッシュ コード プロバイダーと大文字と小文字を区別しない既定の比較子を使用する、NameValueCollection クラスの新しいインスタンスを初期化します。 |
NameValueCollection(Int32, IEqualityComparer) |
空で、指定した初期量を備え、指定した IEqualityComparer オブジェクトを使用する、NameValueCollection クラスの新しいインスタンスを初期化します。 |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
古い.
古い.
空で、指定した初期量を備え、指定したハッシュ コード プロバイダーと指定した比較子を使用する、NameValueCollection クラスの新しいインスタンスを初期化します。 |
NameValueCollection(Int32, NameValueCollection) |
指定した初期量またはコピーされるエントリの数と同じ初期量のうち値が大きい方の初期量を備え、大文字と小文字を区別しない既定のハッシュ コード プロバイダーおよび大文字と小文字を区別しない既定の比較子を使用する新しい NameValueCollection に、指定した NameValueCollection からエントリをコピーします。 |
NameValueCollection(NameValueCollection) |
コピーされるエントリの数と同じ初期量を備え、ソース コレクションと同じハッシュ コード プロバイダーおよび比較子を使用する新しい NameValueCollection に、指定した NameValueCollection からエントリをコピーします。 |
NameValueCollection(SerializationInfo, StreamingContext) |
古い.
シリアル化でき、指定した SerializationInfo と StreamingContext を使用する、NameValueCollection クラスの新しいインスタンスを初期化します。 |
プロパティ
AllKeys |
NameValueCollection 内のすべてのキーを取得します。 |
Count |
NameObjectCollectionBase インスタンスに格納されているキーと値のペアの数を取得します。 (継承元 NameObjectCollectionBase) |
IsReadOnly |
NameObjectCollectionBase インスタンスが読み取り専用かどうかを示す値を取得または設定します。 (継承元 NameObjectCollectionBase) |
Item[Int32] |
NameValueCollection の指定したインデックスにあるエントリを取得します。 |
Item[String] |
NameValueCollection 内の指定したキーを持つエントリを取得または設定します。 |
Keys |
NameObjectCollectionBase.KeysCollection インスタンスのすべてのキーを含んでいる NameObjectCollectionBase インスタンスを取得します。 (継承元 NameObjectCollectionBase) |
メソッド
明示的なインターフェイスの実装
ICollection.CopyTo(Array, Int32) |
NameObjectCollectionBase 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。 (継承元 NameObjectCollectionBase) |
ICollection.IsSynchronized |
NameObjectCollectionBase オブジェクトへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。 (継承元 NameObjectCollectionBase) |
ICollection.SyncRoot |
NameObjectCollectionBase オブジェクトへのアクセスを同期するために使用できるオブジェクトを取得します。 (継承元 NameObjectCollectionBase) |
拡張メソッド
Cast<TResult>(IEnumerable) |
IEnumerable の要素を、指定した型にキャストします。 |
OfType<TResult>(IEnumerable) |
指定された型に基づいて IEnumerable の要素をフィルター処理します。 |
AsParallel(IEnumerable) |
クエリの並列化を有効にします。 |
AsQueryable(IEnumerable) |
IEnumerable を IQueryable に変換します。 |
適用対象
スレッド セーフ
パブリック静的 (Visual Basic ではShared
) なこの型のメンバーはスレッド セーフです インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
この実装は同期を行う (スレッド セーフな) NameValueCollectionのラッパーを提供しませんが、派生クラスは、NameValueCollectionの独自の同期バージョンを、NameObjectCollectionBaseクラスのSyncRootプロパティを使用して、作成できます。
コレクションの列挙は、本質的にスレッド セーフな手続きではありません。 コレクションが同期されていても、他のスレッドがコレクションを変更する場合があり、このときは列挙子から例外がスローされます。 列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。
こちらもご覧ください
.NET