C # NameValueCollection

Source: Internet
Author: User
Tags allkeys

/*
Test For Jagged ArrayList From NameValueCollection
(The Upgraded Hashmap Type, Key-->Value1, Value2,ValueN)
sQxJp-m@QiNtOsHilOvExJp4EvEr..2007/10
Copy Right By K.Shi
*/

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Specialized;
using System.Collections;

namespace testNamevalueCollection
{
class testNamevalueCollection
{
static void Main(string[] args)
{
NameValueCollection nvcn = new NameValueCollection();

nvcn.Add("FujiXerox", "WorkShop");
nvcn.Add("FujiXerox", "Teak");
nvcn.Add("FujiXerox", "DocuWorks");
nvcn.Add("FujiXerox", "PineHurst");

nvcn.Add("IBM", "T42");
nvcn.Add("IBM", "T43");
nvcn.Add("IBM", "T60");
nvcn.Add("IBM", "T60p");
nvcn.Add("IBM", "T61");
nvcn.Add("IBM", "T61p");

nvcn.Add("iPod", "Classic");
nvcn.Add("iPod", "nano");
nvcn.Add("iPod", "nano2");
nvcn.Add("iPod", "video");
nvcn.Add("iPod", "photo");
nvcn.Add("iPod", "touch");
nvcn.Add("iPod", "phone");


nvcn.Add("ATH", "ES7");
nvcn.Add("ATH", "CK9");

/*
// Displays the values in the NameValueCollection in two different ways.
Console.WriteLine("Displays the elements using the AllKeys property and the Item (indexer) property:");
printKeyAndValues(nvcn);
Console.WriteLine("Displays the elements using GetKey and Get:");
printKeyAndValues2(nvcn);

// Gets a value either by index or by key.
Console.WriteLine("Index 1 contains the value: {0}.", nvcn[1]);
Console.WriteLine("Key \"Ipod\" has the value: {0}.", nvcn["iPod"]);
Console.WriteLine();

// Copies the values to a string array and displays the string array.
String[] myStrArr = new String[nvcn.Count];
nvcn.CopyTo(myStrArr, 0);
Console.WriteLine("The string array contains:");
foreach (String s in myStrArr)
Console.WriteLine("\t {0}", s);
Console.WriteLine();

// Searches for a key and deletes it.
nvcn.Remove("ATH");
Console.WriteLine("The collection contains the following elements after removing \"ATH\":");
printKeyAndValues(nvcn);

// Clears the entire collection.
nvcn.Clear();
Console.WriteLine("The collection contains the following elements after it is cleared:");
printKeyAndValues(nvcn);
*/

string[][] sa = new string[nvcn.Count][];
//= new string[nvcn.Count,];

for (int m = 0; m < nvcn.Count; m++)
{
Console.WriteLine(nvcn.GetValues(m).Length);
sa[m] = new string[nvcn.GetValues(m).Length];
for (int n = 0; n < nvcn.GetValues(m).Length; n++)
{
sa[m][n] = nvcn.GetValues(m)[n];
Console.WriteLine(sa[m][n]);
}
}

Console.WriteLine("\n\n");

for (int i = 0; i < nvcn.Count; i++)
{
Console.Write("\nThe {0}: \n", i+1);
for (int j = 0; j < nvcn.GetValues(i).Length; j++)
{
Console.WriteLine(sa[i][j]);
}
}

}

public static void printKeyAndValues(NameValueCollection NVCN)
{
IEnumerator ietr = NVCN.GetEnumerator();
Console.WriteLine("\n#####################################" +
"\n# The Table Contains: [" + NVCN.Count + "] Elements. #\n"
+ "#####################################\n");
Console.WriteLine("\t KEY \t VALUE");

/*
foreach (String str in NVCN.AllKeys)
{
Console.WriteLine("\t {0} \t {1}", str, NVCN[str]);
}
*/

while (ietr.MoveNext())
{
Console.WriteLine("\t {0} \t {1}", ietr.Current, NVCN[ietr.Current.ToString()]);
}
Console.WriteLine();
}

public static void printKeyAndValues2(NameValueCollection NVCN)
{
Console.WriteLine("\n#####################################" +
"\n# The Table Contains: [" + NVCN.Count + "] Elements. #\n"
+ "#####################################\n");
Console.WriteLine("\t [INDEX] \t KEY \t VALUE");
for (int i = 0; i < NVCN.Count; i++)
Console.WriteLine("\t [{0}] \t {1} \t {2}", i, NVCN.GetKey(i), NVCN.Get(i));
Console.WriteLine();
}

}
}

 

Running result:

 

6
Win3.1
Win98
Win2k
WinXP
Longhorn
WinVista
6
T42
T43
T60
T60p
T61
T61p
7
Classic
Nano
Nano2
Video
Photo
Touch
Phone
2
ES7
CK9

 

The 1:
Win3.1
Win98
Win2k
WinXP
Longhorn
WinVista

The 2:
T42
T43
T60
T60p
T61
T61p

The 3:
Classic
Nano
Nano2
Video
Photo
Touch
Phone

The 4:
ES7
CK9
When there are too many threads, why are they being held? Why are there too many threads...

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.