for循环后代码执行会停止吗?

时间:2017-01-16 14:51:49

标签: c# api nuget

所以我试图制作一个在C#中使用英雄联盟API的程序。

我发现了一个使用API​​的NuGet包更容易。

  

到目前为止一切正常,除了代码执行停止后   首先是我使用的循环。

这里是代码:(当然我拿出了api密钥)

string[] summnames;
long[] champids;
long[] teamids;
long[] champs;

CreepScoreAPI.ParticipantLive[] enemy;
CreepScoreAPI.ParticipantLive[] ally;
CreepScoreAPI.ParticipantLive centsumm;
CreepScoreAPI.ParticipantLive[] champsss;
CreepScoreAPI.ChampionStatic[] champions;
CreepScoreAPI.Summoner[] sumners;
CreepScoreAPI.League[] leaguesz;

Dictionary<string, List<CreepScoreAPI.League>>[] leagues;

int[] champidsint;
string[] champnames;

int s;
int se;

public async Task<string> game(string summname)
{
    string data;

    CreepScoreAPI.CreepScore cs = new CreepScoreAPI.CreepScore("api key");

    var summoner = await cs.RetrieveSummoner(CreepScoreAPI.CreepScore.Region.EUNE, summname);
    long summid = summoner.id;
    var thegame = await summoner.RetrieveCurrentGameInfo();

    CreepScoreAPI.ParticipantLive[] participants = thegame.participants.ToArray();

    for (int i = 0; i <= 9; i++) { summnames[i] = participants[i].summonerName;}

    for (int i = 0; i <= 9; i++) { champids[i] = participants[i].championId;}

    for (int i = 0; i <= 9; i++) { teamids[i] = participants[i].teamIdLong;}

    for (int i = 0; i <= 9; i++) { champids[i] = participants[i].championId;}

    for (int i = 0; i <= 9; i++) { champidsint[i] = Convert.ToInt32(champids[i]);}

    for (int i = 0; i <= 9; i++) { champions[i] = await cs.RetrieveChampionData( CreepScoreAPI.CreepScore.Region.EUNE, champidsint[i], CreepScoreAPI.Constants.StaticDataConstants.ChampData.All, "en_US", "7.1.1",false ); }

    for (int i = 0; i <= 9; i++) { champnames[i] = champions[i].name; }

    for (int i = 0; i <= 9; i++) { sumners[i] = await cs.RetrieveSummoner(CreepScoreAPI.CreepScore.Region.EUNE, summnames[i]); }

    for (int i = 0; i <= 9; i++) { leagues[i] = await sumners[i].RetrieveLeague(); }

    /* teamsorter */
    foreach (CreepScoreAPI.ParticipantLive p in participants)
    {
        if (p.summonerId == summid)
        {
            centsumm = p;
        }

        if (p.teamIdLong == centsumm.teamIdLong)
        {
            ally[s] = p;
            s++;
        }
        if (p.teamIdLong != centsumm.teamIdLong)
        {
            enemy[se] = p;
            se++;
        }
    }

    data = " I'LL FORMAT A STRING THAT OUTPUTS ALL THE DATA I NEED HERE";
    return data;
}

当我调用游戏函数并输入召唤者的名字时,我会进入第一个for循环,并且甚至不会填充summnames []数组并停止执行而没有错误代码。

我试图用所有循环填充我在函数之前创建的变量,以便稍后可以将它们用于其他目的。

1 个答案:

答案 0 :(得分:0)

我认为您应该分配所有数组并将其长度设置为至少10。

这可以解决问题。