Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การคัดลอก ListDictionary ไปยังอาร์เรย์ที่ดัชนีที่กำหนดใน C#

ภาพรวม

ListDictionary.CopyTo(Array array, int index) คัดลอกคู่คีย์/ค่าเป็น DictionaryEntry ไปยังอาร์เรย์ เริ่มที่ดัชนีที่ระบุ เหมาะสำหรับข้อมูลขนาดเล็ก

ตัวอย่างที่ 1: คัดลอก 8 คู่ไปอาร์เรย์ขนาด 8 เริ่มดัชนี 0

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo
{
    public static void Main()
    {
        ListDictionary dict = new ListDictionary();
        dict.Add(1, "Harry");
        dict.Add(2, "Mark");
        dict.Add(3, "John");
        dict.Add(4, "Jacob");
        dict.Add(5, "Tim");
        dict.Add(6, "Sam");
        dict.Add(7, "Tom");
        dict.Add(8, "Kevin");

        Console.WriteLine("ListDictionary elements...");
        foreach (DictionaryEntry d in dict)
        {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        DictionaryEntry[] dictArr = new DictionaryEntry[dict.Count];
        Console.WriteLine("\nCopying to Array instance...");
        dict.CopyTo(dictArr, 0);

        for (int i = 0; i < dictArr.Length; i++)
        {
            Console.WriteLine("Key = " + dictArr[i].Key + ", Value = " + dictArr[i].Value);
        }
    }
}

ผลลัพธ์

ListDictionary elements...
1 Harry
2 Mark
3 John
4 Jacob
5 Tim
6 Sam
7 Tom
8 Kevin
Copying to Array instance...
Key = 1, Value = Harry
Key = 2, Value = Mark
Key = 3, Value = John
Key = 4, Value = Jacob
Key = 5, Value = Tim
Key = 6, Value = Sam
Key = 7, Value = Tom
Key = 8, Value = Kevin

ตัวอย่างที่ 2: คัดลอก 5 คู่ไปอาร์เรย์ขนาด 10 เริ่มดัชนี 5

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo
{
    public static void Main()
    {
        ListDictionary dict = new ListDictionary();
        dict.Add(1, "Harry");
        dict.Add(2, "Mark");
        dict.Add(3, "John");
        dict.Add(4, "Jacob");
        dict.Add(5, "Tim");

        Console.WriteLine("ListDictionary elements...");
        foreach (DictionaryEntry d in dict)
        {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        DictionaryEntry[] dictArr = new DictionaryEntry[10];
        Console.WriteLine("\nCopying to Array instance...");
        dict.CopyTo(dictArr, 5);

        for (int i = 0; i < dictArr.Length; i++)
        {
            Console.WriteLine("Key = " + dictArr[i].Key + ", Value = " + dictArr[i].Value);
        }
    }
}

ผลลัพธ์

ListDictionary elements...
1 Harry
2 Mark
3 John
4 Jacob
5 Tim
Copying to Array instance...
Key = , Value = 
Key = , Value = 
Key = , Value = 
Key = , Value = 
Key = , Value = 
Key = 1, Value = Harry
Key = 2, Value = Mark
Key = 3, Value = John
Key = 4, Value = Jacob
Key = 5, Value = Tim

สรุป

  • ListDictionary ใช้ linked list เหมาะข้อมูลน้อย (< 10 รายการ)
  • CopyTo ต้องการ DictionaryEntry[] ขนาดพอ + index
  • ลำดับรักษาตามที่เพิ่มเข้าไป (insertion order)