我已经浏览了整个互联网,试图找到如何修复以下内容的示例。
如何按“值”按顺序对列表中的列表进行排序,并按“键”对重复项进行排序? 然后以下面的格式打印结果。
我已经附上我的代码并且它可以工作,但是当存在重复值时会出现问题,这在使用SortedList()时会发生。如果有人可以修改此代码或者告诉我如何以另一种方式执行此操作,我会非常感激它,这同样快速而有效。
非常感谢你。
分拣前:
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");
排序后:
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));
打印输出结果:
蓝色> =红色;
&安培;&安培;红色> = dodBlue;
&安培;&安培; dodBlue> =绿色;
&安培;&安培;绿色> =黄色;
&安培;&安培;黄色> =黑色;
&安培;&安培;黑色> =青色;
&安培;&安培;青色> =橙色;
&安培;&安培;橙色> =白色;
答案 0 :(得分:0)
为什么不为此使用LINQ? OrderBy()和Distinct()方法将对您有所帮助。
答案 1 :(得分:0)
您可以使用LINQ执行此操作,如下所示:
Dictionary<int, string> lst = new Dictionary<int,string>(10);
lst.Add(7, "MAX");
lst.Add(2, "A");
lst.Add(1, "A");
lst.Add(8, "0");
Dictionary<int, string> newList = (lst.OrderBy(x => x.Value).ThenBy(x => x.Key)).ToDictionary(x => x.Key,x=>x.Value);