C# 如何检查ID是否与另一个ID匹配,然后通过foreach显示它们
我不知道该如何表达这个问题,但我还是会试试 我目前正在做一个项目,我想通过这个项目获得用户的高分。我的数据库中的高分id如下所示:C# 如何检查ID是否与另一个ID匹配,然后通过foreach显示它们,c#,database,xna,foreach,C#,Database,Xna,Foreach,我不知道该如何表达这个问题,但我还是会试试 我目前正在做一个项目,我想通过这个项目获得用户的高分。我的数据库中的高分id如下所示: The user database: |ID | Username | | 1 | Test1 | | 2 | Test2 | | 3 | Test3 | The highscore database: |ID |Highscore |HighscoreID| | 1 | 200 | 1 | | 1 | 230
The user database:
|ID | Username |
| 1 | Test1 |
| 2 | Test2 |
| 3 | Test3 |
The highscore database:
|ID |Highscore |HighscoreID|
| 1 | 200 | 1 |
| 1 | 230 | 2 |
| 1 | 240 | 3 |
首先,我希望检查用户的ID是否与highscore数据库中的ID(HighscoreID)匹配,以便在显示所有highscore时,Test1(其ID为1)将显示在HighscoreID中ID对应的highscore前面。有点像
If(Username.ID == 1 && Highscore.HighscoreID == 1)
{
//Display The username + the score associated with that username
}
我不知道如何解释这个问题,但当我们想通过网站上的ID显示某些内容时,我们会在地址链接中显示ID,然后从地址链接中取出所有带有ID的内容
我希望这个问题解释得足够好,游戏很快就要到最后期限了,所以我希望我不必重写这个问题
提前谢谢,你们太棒了
编辑
因此,基本上:
MathAndYouDBEntities db = new MathAndYouDBEntities();
User users = new User();
HighScore highscor = new HighScore();
int idCounter = 0;
for (int i = 1; i < 5; i++)
{
i = idCounter;
if (users.ID == i && highscor.HighscoreID == i)
{
}
}
MathAndYouDBEntities db=new MathAndYouDBEntities();
用户=新用户();
HighScore highscor=新的HighScore();
int-idCounter=0;
对于(int i=1;i<5;i++)
{
i=idCounter;
if(users.ID==i&&highscor.HighscoreID==i)
{
}
}
如果我想循环浏览所有这些内容,以便稍后显示它们
D
这样做基本上会使程序崩溃:
MathAndYouDBEntities db=新的MathAndYouDBEntities();
用户=新用户();
HighScore highscor=新的HighScore();
int-idCounter=0;
对于(int i=1;i<5;i++)
{
i=idCounter;
if(users.ID==idCounter&&highscor.HighscoreID==idCounter)
{
allUsers+=users.Bruger.ToString();
highscores+=highscor.UserHighscore.ToString()+'\n';
}
}
message=alluser+“”+高分;
有什么想法吗
If(Username.ID == 1 && Highscore.HighscoreID == 1)
{
System.out.println("Username is: " Username.name + "And the high score is :" + Highscore.Highscore);
//Display The username + the score associated with that username
}
因为如果您用正确的高分检查正确的用户名ID,您可以使用相同的高分从中获得高分
我希望我说的有道理
编辑:对不起,我没有读到你想要它在for循环中
for(Highscore h : HighscoreList) //ifyourusinganarraylistnamedHighscoreList
If(Username.ID == 1 && Highscore.HighscoreID == 1)
{
System.out.println("Username is: " Username.name + "And the high score is :" + Highscore.Highscore);
}
如果你正在使用某种ORM,你可以这样做
var highScore = Highscores.Where(c => c.HighscoreID == 1)
.Max(c => c.Highscore);
或者在查询字符串中执行此操作。经过大量测试后找到了答案
MathAndYouDBEntities db = new MathAndYouDBEntities();
var queryResults =
(
from u in db.Users
join h in db.HighScores
on u.ID equals h.HighscoreID
select new { u.Bruger, h.UserHighscore }
);
foreach (var h in queryResults)
{
allUsers += h.Bruger.ToString();
highscores += h.UserHighscore.ToString();
}
谢谢大家的帮助。你的意思是“如果(Username.ID==1&&Highscore.HighscoreID==1)”,还是说“如果(Username.ID==1&&Highscore.ID==1)”?如何从数据库中获取数据?这只是数据库外观的一个示例。我不知道如何制作,所以我想了一个关于我认为它应该是什么样子的小例子,这将大大有助于解释。似乎我无法在评论部分用代码回答,所以我将把它放在问题中。这并不是真正允许我对它进行讨论的东西。这是一个所有高分的列表+做出高分的用户。不过谢谢:)“这是一个所有高分的列表”,正如你所说,这是一个列表。这意味着它是数组、字典还是列表?
MathAndYouDBEntities db = new MathAndYouDBEntities();
var queryResults =
(
from u in db.Users
join h in db.HighScores
on u.ID equals h.HighscoreID
select new { u.Bruger, h.UserHighscore }
);
foreach (var h in queryResults)
{
allUsers += h.Bruger.ToString();
highscores += h.UserHighscore.ToString();
}