9
Reply

How to Sort a List in Desending Order by the "Value" and Sort the Duplicates by the "Key" ?

Joe Caggiano

Joe Caggiano

Mar 15 2011 1:41 AM
2.8k

I have looked All over the Internet to try and find an example of How to fix the following.

How to Sort a List in Desending Order by the "Value" and Sort the Duplicates by the "Key" ?
Then Print out the Results in the format below.

I have enclosed my code and it works, but the problem happens when there are duplicate values, which occurs when you use SortedList(). I would GREATLY APPRECIATE it if someone could PLEASE Modify this Code or Show me EXACTLY how to do this another way, that is just as quick and efficent.

THANK YOU VERY MUCH in Advance.

BEFORE SORT:

VALUE's,  KEY's

sL.Add(1269.63,"white");

sL.Add(1270.36,"orange");

sL.Add(1272.06,"yellow");

sL.Add(1271.50,"cyan");

sL.Add(1272.06,"black");

sL.Add(1274.12,"dodBlue");

sL.Add(1276.02,"blue");

sL.Add(1273.21,"green");

sL.Add(1275.52,"red");

AFTER SORT:

VALUE's,  KEY's

sL.Add(1276.02,"blue");

sL.Add(1275.52,"red");

sL.Add(1274.12,"dodBlue");

sL.Add(1273.21,"green");

sL.Add(1272.06,"black");

sL.Add(1272.06,"yellow");

sL.Add(1271.50,"cyan");

sL.Add(1270.36,"orange");

sL.Add(1269.63,"white");

CODE:

SortedList sL = new SortedList();

 sL.Add(SMA(8)[0], "white");

 sL.Add(SMA(10)[0], "orange");

 sL.Add(SMA(13)[0], "yellow");

 sL.Add(SMA(20)[0], "cyan");

 sL.Add(SMA(30)[0], "black");

 sL.Add(SMA(40)[0], "dodBlue");

 sL.Add(SMA(50)[0], "blue");

 sL.Add(SMA(100)[0], "green");

 sL.Add(SMA(200)[0], "red");

Print("  " + " " + sL.GetByIndex(8) + " " + ">=" + " " + sL.GetByIndex(7));

Print("&&" + " " + sL.GetByIndex(7) + " " + ">=" + " " + sL.GetByIndex(6));

Print("&&" + " " + sL.GetByIndex(6) + " " + ">=" + " " + sL.GetByIndex(5));

Print("&&" + " " + sL.GetByIndex(5) + " " + ">=" + " " + sL.GetByIndex(4));

Print("&&" + " " + sL.GetByIndex(4) + " " + ">=" + " " + sL.GetByIndex(3));

Print("&&" + " " + sL.GetByIndex(3) + " " + ">=" + " " + sL.GetByIndex(2));

Print("&&" + " " + sL.GetByIndex(2) + " " + ">=" + " " + sL.GetByIndex(1));

Print("&&" + " " + sL.GetByIndex(1) + " " + ">=" + " " + sL.GetByIndex(0));

PRINT OUT RESULTS:

blue  >= red ;

&& red  >= dodBlue ;

&& dodBlue >= green ;

&& green  >= yellow ;

&& yellow  >= black ;

&& black  >= cyan ;

&& cyan  >= orange ;

&& orange  >= white ;


Answers (9)