2011-06-29 8 views
6

はこれを統合しようとすると... 1つのラインにはリテラルのように配列し、キーの定義 - C#

string[] array = new string[]; 

array[0] = "Index 0"; 
array[3] = "Index 3"; 
array[4] = "index 4"; 

を...

例をPHP

$array = array(0 => "Index 0", 3 => "Index 3", 4 => "Index 4"); 

を私は知っている私は、できます

string[] array = { "string1", "string2", "string3" } 

しかし、どのようにして私はそこに適切なインデックスを取得できますか?

答えて

9

あなたはDictionary<int, string>ではなく、伝統的なC#の配列の後に、実際にしているようですね:

var dictionary = new Dictionary<int, string> 
{ 
    { 0, "Index 0" }, 
    { 3, "Index 3" }, 
    { 4, "Index 4" } 
}; 
4

あなたがすることはできませんC#では。特定のインデックスが必要な場合は、nullの値を渡して空のオブジェクトの場所を保持する必要があります。

あなたは本当にDictionary<TKey, TValue>の後にいるようです。

2

私が知っている限り、インデックス番号は通常の配列(たとえば0,1,2、3ではなく4)にスキップすることはできません。 DictionaryやHashtableのような別のデータ構造を使う必要があります。

Hashtable ht = new Hashtable() 
{ 
    {"key1", "value1"}, 
    {"key2", "value2"} 
}; 
0

私の理解から、あなたが望む方法で配列を定義することはできません。

string[] array = {"array0", "", "array2", "array3"};

または

string[] array = new string[4]; array[0] = "array0"; array[2] = "array2";

:他のポスターは、あなたが最高の状態で使用すると、回避策を作成することができます

を連想配列(辞書)を使用することができますを示しています

関連する問題