IEnumerable列表未正确重新排序字符串[]列表
本文关键字:列表 排序 字符串 新排序 IEnumerable | 更新日期: 2023-09-27 18:01:00
我有一个包含数组的string[]
列表。
数组包含两个元素,[0]=分数,[1]=难度(1或2(。
我使用下面的LINQ
语句按照难度为2的分数降序对列表进行重新排序。
scoresDesHard = list.OrderByDescending(ld => lineData[0]).Where(ld => lineData[1] == "2");
我目前正在XNA
中的屏幕上绘制新订购的列表,如下所示:
// draw highscores to the screen
public void Draw(SpriteBatch spriteBatch)
{
string mainString = "";
// build the hard list string
foreach (var li in scoresDesHard)
{
mainString += li[0] + " " + li[1] + "'r'n";
}
spriteBatch.DrawString(scoreFont, ""+ mainString, hardScoresPos, Color.White);
}
它根本没有排序,而是显示了两个困难的分数:
000001 1
000001 2
122122 1
125555 1
22 1
23131 2
它应该输出:
23131 2
00001 2
为什么它没能排序?
我认为问题是您正在将ld传递到Lambda中,但检查lineData[1] == 2
我认为LINQ语句应该看起来像这个
scoresDesHard = list.Where(x => x[1] == "2").OrderByDescending(y => y[0]);
list.Where(foo => bar.Value1 == 123) //Always true or always false
list.Where(foo => foo.Value1 == 123) //checks each item in the list