帮助文本福彩12选5走势图排序

Rowlandsfc

会员
已加入
2019年2月3日
留言内容
23
地点
布里真德
编程经验
Beginner
因此,我创建了一个基本游戏,它具有一个简单的计分系统,其中得分和玩家名称(两个变量)都保存到文本福彩12选5走势图leaderboard.text中。我在按分数而不是名称对福彩12选5走势图排序时遇到问题,我无法使其正常工作.``

C#:
        // reads the leaderboard txt and displays it in listbox

        private void scoreBoard()

        {

            List<string> lines = File.ReadLines(@"E:\College Year 3\Computer Programming 2\Minefield\Leaderboard.txt").ToList();

            List<int> score = lines.Select(s => Convert.ToInt32(s)).ToList();

            score.Sort();

            foreach (int r in score)

            {

               listBox1.Items.Add(r);

            }



        }

我可以根据需要提供任何其他代码
多数民众赞成在代码香港专业教育学院尝试过,但我得到了清单上的错误<int>表示其格式不正确。

如果有人可以引导我朝正确的方向前进,那将是很棒的
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
告诉您输入行之一不能转换为int32的例外,因为它的格式错误。也许您有一个空行,或者仅包含字母或标点的行,或者具有十六进制数字的行,等等。

除非您绝对信任并控制输入,否则切勿使用Convert.ToInt32()。而是使用int.TryParse()。
 

Rowlandsfc

会员
已加入
2019年2月3日
留言内容
23
地点
布里真德
编程经验
Beginner
告诉您输入行之一不能转换为int32的例外,因为它的格式错误。也许您有一个空行,或者仅包含字母或标点的行,或者具有十六进制数字的行,等等。

除非您绝对信任并控制输入,否则切勿使用Convert.ToInt32()。而是使用int.TryParse()。
谢谢回复
我最初确实有int.tryparse并且有相同的错误,没有任何行只有字母或空行
文本福彩12选5走势图是名称分数
例如
丹60
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
好吧,证明就是推杆。附加你的"Leaderboard.txt"福彩12选5走势图在您的下一个答复中。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
它有一个简单的计分系统,其中分数和球员姓名(两个变量)都保存到文本福彩12选5走势图leaderboard.text中
福彩12选5走势图中每一行的格式是什么?如果一行看起来像这样:
Code:
Alex 8123487

然后,这可能会引发与您当前所见相同的异常:
C#:
string line = "Alex 8123487"
int score = Convert.ToInt32(line);

您需要做的就是从行中提取数字并解析或转换它。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
为我正确尝试尝试在电话上使用此线程。我没有在第3个帖子中看到该示例。

因此,这正是我在第5个帖子中猜到的问题。您需要先将数字拉出行,然后再尝试解析或转换它。

我的建议是开设一个可以容纳球员姓名和得分的课程。就像是:
C#:
class PlayerScore
{
    public string Name { get; set; }
    public 整型 Score { get; set; }
}

并且具有以下伪代码:
Code:
playerScores = new List<PlayerScore>()
foreach line in the score file
    parts = line.Split(' ')
    name = line[0]
    if 整型.TryParse(line[1], out score) is successful
        playerScores.Add(new PlayerScore() { Name = name, Score = score });

Then once you have your list of players and their scores, it's a simple matter of calling the LINQ OrderByDescending() method to sort things:
C#:
var sortedScores = playerScores.OrderByDescending(playerScore => playerScore.Score).ToList();
 

Rowlandsfc

会员
已加入
2019年2月3日
留言内容
23
地点
布里真德
编程经验
Beginner
为我正确尝试尝试在电话上使用此线程。我没有在第3个帖子中看到该示例。

因此,这正是我在第5个帖子中猜到的问题。您需要先将数字拉出行,然后再尝试解析或转换它。

我的建议是开设一个可以容纳球员姓名和得分的课程。就像是:
C#:
class PlayerScore
{
    public string Name { get; set; }
    public 整型 Score { get; set; }
}

并且具有以下伪代码:
Code:
playerScores = new List<PlayerScore>()
foreach line in the score file
    parts = line.Split(' ')
    name = line[0]
    if 整型.TryParse(line[1], out score) is successful
        playerScores.Add(new PlayerScore() { Name = name, Score = score });

Then once you have your list of players and their scores, it's a simple matter of calling the LINQ OrderByDescending() method to sort things:
C#:
var sortedScores = playerScores.OrderByDescending(playerScore => playerScore.Score).ToList();
很抱歉回复迟到,我住的地方已经很晚了
感谢您的建议,稍后再讲,我目前已将得分和名称存储为变量,所以不是那些有那个playerScore类的变量,而是一种情况?还是您的意思是,读取文本福彩12选5走势图以获取其中的数据,然后将其存储到播放器类中?,对不起,处理福彩12选5走势图和数组时还很新
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
变量只能包含一个值。您说您的排行榜福彩12选5走势图包含多个名称和分数。

The object oriented way of doing things is to keep related data together. Hence that PlayerScore class to keep the name and score together.

如果您是在50到60年代编写代码或使用传统的BASIC,则旧方法是保留名称和分数的并行数组。因此,当您按分数排序时,您需要确保名称与相应分数保持同步。在人们被教导如何使用结构之前,这曾经是学习C和Pascal的人们的标准练习。该练习旨在说明保持事物同步所带来的痛苦。
 

Rowlandsfc

会员
已加入
2019年2月3日
留言内容
23
地点
布里真德
编程经验
Beginner
变量只能包含一个值。您说您的排行榜福彩12选5走势图包含多个名称和分数。

The object oriented way of doing things is to keep related data together. Hence that PlayerScore class to keep the name and score together.

如果您是在50到60年代编写代码或使用传统的BASIC,则旧方法是保留名称和分数的并行数组。因此,当您按分数排序时,您需要确保名称与相应分数保持同步。在人们被教导如何使用结构之前,这曾经是学习C和Pascal的人们的标准练习。该练习旨在说明保持事物同步所带来的痛苦。
今晚我去吧,谢谢
 

Rowlandsfc

会员
已加入
2019年2月3日
留言内容
23
地点
布里真德
编程经验
Beginner
嘿,谢谢您的能力,我无法弄清楚如何使其与您提供的代码一起使用,但是我设法使其正常工作

C#:
string[] hard = File.ReadAllLines(@"E:\College Year 3\Computer Programming 2\Minefield\LeaderboardHard.txt");
                var orderedHard = hard.OrderByDescending(x => 整型.Parse(x.Split(' ')[1]));

                foreach (var score in orderedHard)
                {
                    listBox1.Items.Add(score);
                }

香港专业教育学院还增加了一个难度级别,所以我现在在3个级别上都可以使用它,我唯一的问题是名称和分数在列表框上非常接近,是否可以通过样式设置使其看起来更好一点不会弄乱代码?
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
在WinForms中,使用ListView而不是ListBox。在WPF中,您只需在XAML中设置间距,甚至都无需触摸代码(但这假定您实际上是在使用绑定的正确方式使用WPF)。在WebForms中,正确的做法是使用Repeater填充表格元素,但是大多数人"hack"通过插入不间断空格的列表框。
 

纳皮沃

游戏成瘾者
已加入
2020年10月17日
留言内容
8
地点
比利时(GMT + 1)
编程经验
1-3
我想知道您的文本福彩12选5走势图是什么样的,

如果我必须这样做,我的看起来会像这样。

播放器1; 2000
Player2; 4000
播放器3; 5000

Then I could read PlayerName and PlayerScore 整型o a structure and sort the list of structures by points.

抱歉,管理员才刚开始在这里...出错了......可以删除帖子
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
请参阅文章3的最后一行,以了解OP的福彩12选5走势图外观。
 
最佳 底部