在数组周期结束时插入句点

时间:2018-07-18 11:38:44

标签: c#

for(int i = 0; i < org.Length; i++)
{
    if (i < org.Length)
    {
        orgResult += $“{org[i]},“;
        doubledResult += $“{doubled[i]},“;
    }
    else
    {
        orgResult += $“{org[i]}“;
        doubledResult += $“{doubled[i]}“;
    }
}

Console.WriteLine($“\r\nYour original array was [{orgResult}] and now it is doubled it is [{doubledResult}]“);

在提供的代码中,当我显示到控制台窗口时,我试图在数组中的每个元素之后放置一个逗号。但是,当我到达数组中的最后一个数字时,我不想在其后加逗号。

我以为else语句可以解决这个问题,但是在最后一个数字后面仍然加上逗号。有什么建议吗?

5 个答案:

答案 0 :(得分:3)

i始终小于org.Length ,这就是循环条件。要识别何时是最后一次迭代,您需要检查if i < org.Length - 1

for(int i = 0; i < org.Length; i++)
{
       if (i < org.Length - 1)

解决此问题的更好方法是使用string.Join()

orgResult = string.Join(",", org);
doubledResult = string.Join(",", doubled);

但是,如果这是学校活动,则可能不允许您使用这些方法。

答案 1 :(得分:2)

您想要的是这样的

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_feed"
        android:title=""/>
    <item
        android:id="@+id/navigation_dashboard"
        android:icon="@drawable/ic_analytics"
        android:title="" />
    <item
        android:id="@+id/navigation_profile"
        android:icon="@drawable/ic_profile"
        android:title="" />
    <item
        android:id="@+id/navigation_settings"
        android:icon="@drawable/ic_settings"
        android:title="" />
</menu>

结果:CombinedString =“ a,b,c”

答案 2 :(得分:1)

As I mentioned in my comment来修复您需要更改的代码:

if (i < org.Length)

进入:

if (i < org.Length - 1)

这是因为您的循环已经强制i小于org.Length的要求,因此您的else情况永远不会触发。

但是,要获得更有效的解决方案,您应该使用René's answer中提到的string.Join

答案 3 :(得分:1)

如果string大,则当前代码中的org存在问题:

int[] org = new int[1000000];

因为每个orgResult += $“{org[i]},“;都意味着创建不可变 string新实例复制到其中({ {1}}的创建数乘以1000000的平均长度得出500000个基本运算)。 如果要循环实现,请使用5e11

StringBuilder

答案 4 :(得分:-1)

有很多方法可以做到这一点, 例如,您可以像这样更改条件:

orgResult += $“{org[i]}“;
doubledResult += $“{doubled[i]}“;
if(i != org.Length - 1)
{
   orgResult += ",";
   doubledResult += ",";
}

虽然这不是最佳实践。