为什么这个C#循环字符串列表很奇怪?

qua*_*els 0 c# loops list

我不认为自己是世界上最伟大的开发者,但我认为我至少可以遍历一个字符串列表!

这是我的功能:

    public string liststrings() {

        List<string> strings = new List<string>();
        strings.Add("First");
        strings.Add("Second");
        strings.Add("Third");

        string output = string.Empty;

        for (int i = 0; i < strings.Count(); i++ )
        {
            output += output + strings[i] + "<br />";
        }

        return output;
    }
Run Code Online (Sandbox Code Playgroud)

此函数返回以下html:

First<br />
First<br />
Second<br />
First<br />
First<br />
Second<br />
Third<br />
Run Code Online (Sandbox Code Playgroud)

额外的迭代来自哪里?

仅供参考:我来自一个主要的VB脚本背景,我可以用VB脚本中的数组做到这一点没有问题.列表或C#语法有什么不同之处呢?

谢谢你的帮助.

Mat*_*hen 7

你要两次添加输出.

output += output + strings[i] + "<br />";
Run Code Online (Sandbox Code Playgroud)

相当于:

output = output + output + strings[i] + "<br />";
Run Code Online (Sandbox Code Playgroud)

你可以使用:

output += strings[i] + "<br />";
Run Code Online (Sandbox Code Playgroud)

一个更好的选择可能是a StringBuilder.


Tim*_*oyd 7

您将在每次迭代时将整个字符串添加回自身,请尝试以下操作:

output += strings[i] + "<br />";
Run Code Online (Sandbox Code Playgroud)