在c#中测试for循环的最后一次迭代

   public string GetUpgradesPurchasedVal()

   {

        string upgradesPurchasedVals = "";

        for (int i = 0; i < upgradesPurchased.Count; i++) {

            if (i == upgradesPurchased.Count) {

                upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "$";

            } else {

                upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "|";

            }

        }

        return upgradesPurchasedVals;

    }

所以在这里我正在循环Dictionary<string,bool> upgradesPurchased,我试图确保for循环是否在由行标记的最后一次迭代中if(i == upgradesPurchased.Count)我期望在这种情况下发生的情况是如果i等于字典中的项目数,那么字符串将在它的末尾收到一个“$”而不是一个“|” 然而似乎这条线被完全忽略了


摘要:我需要测试for循环是否在最后一次迭代中,如果是,则应将“$”添加到字符串中,如果不是“|” 应该添加到字符串中


喵喵时光机
浏览 133回答 3
3回答

潇潇雨雨

循环条件是i < upgradesPurchased.Count,很明显, 中的条件if (i == upgradesPurchased.Count)永远不可能为真。由于迭代是从零开始的,因此最后一次迭代将具有i == upgradesPurchased.Count - 1。

慕姐8265434

if(i&nbsp;==&nbsp;upgradesPurchased.Count&nbsp;-&nbsp;1)
打开App,查看更多内容
随时随地看视频慕课网APP