我想要有键值和值的集合 类似SortedList<key, value> 但我不想要key不能重复而且自动排序的
我想找一个可以重复key并且不能自动排序的 也就是说按照我存放的顺序不能变 有没有这样的集合
集合<1, 111>
集合<1, 1211>
集合<3, 111>
集合<2, 111>
这样的 不排序 也可以重复key
我想找一个可以重复key并且不能自动排序的 也就是说按照我存放的顺序不能变 有没有这样的集合
集合<1, 111>
集合<1, 1211>
集合<3, 111>
集合<2, 111>
这样的 不排序 也可以重复key
class Node
{
int key; int value;
}
List<Node> nodes
...........
{
private object _key;
private object _value;
public object Key
{get{return _key;}set{_key=value;}}
public object Value
{
{get{return _value;}set{_value=value;}}
}
}List<KeyValue> list=new List<KeyValue>();
using System.Collections.Generic;
using System.Text;namespace list中比较大小
{
class Program
{
static void Main(string[] args)
{ List<MyClass> l = new List<MyClass>();
MyClass m1 = new MyClass();
KeyValuePair<int, int> k1 = new KeyValuePair<int, int>(1, 111);
m1.Kvp = k1; MyClass m2 = new MyClass();
KeyValuePair<int, int> k2 = new KeyValuePair<int, int>(1, 113);
m2.Kvp = k2; MyClass m3 = new MyClass();
KeyValuePair<int, int> k3 = new KeyValuePair<int, int>(1, 99);
m3.Kvp = k3;
l.Add(m1);
l.Add(m2);
l.Add(m3);
l.Sort();//排序过后
}
} public class MyClass:IComparable
{
private KeyValuePair<int, int> _kvp; public KeyValuePair<int, int> Kvp
{
get { return _kvp; }
set { _kvp = value; }
} public int CompareTo(object obj)
{
if (obj is MyClass)
{
MyClass temp = (MyClass)obj; return this.Kvp.Value.CompareTo(temp.Kvp.Value);
}
throw new ArgumentException("object is not a MyClass");
}
}
}
using System.Collections;namespace testSortedList
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
//声明可重复键的链表
SortedList sl = new SortedList(new MySort());
sl.Add(333, 333);
sl.Add(111, 111);
sl.Add(222, 222);
sl.Add(111, 112); PrintList(sl); Console.ReadLine();
} private static void PrintList(SortedList sl)
{
for (int i = 0; i < sl.Count; i++)
{
Console.WriteLine("{0}\t{1}",
sl.GetKey(i), sl.GetByIndex(i));
}
} }
//继承接口IComparer
public class MySort : IComparer
{
#region IComparer 成员
public int Compare(object x, object y)
{
return -1;
//排序
//int iResult = (int)x - (int)y;
//if(iResult == 0) iResult = -1;
//return iResult;
}
#endregion
}
}
那么多人帮你
你TM还唧唧歪歪
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 ) {
IEnumerator myEnumerator = myCol.GetEnumerator();
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 azulDisplays the elements using GetKey and Get:
[INDEX] KEY VALUE
[0] red rojo,rouge
[1] green verde
[2] blue azulIndex 1 contains the value verde.
Key "red" has the value rojo,rouge.The string array contains:
rojo,rouge
verde
azulThe collection contains the following elements after removing "green":
KEY VALUE
red rojo,rouge
blue azulThe collection contains the following elements after it is cleared:
KEY VALUE
*/