C#HashSet <string>的全部内容

17 c#

我有一个HashSet<string>定期添加的.我想要做的是将整个HashSet转换为字符串而不进行foreach循环.有人有例子吗?

Ant*_*ram 39

无论是否明确写入内容,都将遍历内容.

但是,要做到这一点没有明确的写作,如果通过"演员"你的意思是"连接",你会写这样的东西

string output = string.Join("", yourSet); // .NET 4.0
string output = string.Join("", yourSet.ToArray()); // .NET 3.5
Run Code Online (Sandbox Code Playgroud)

  • +1,但也值得注意的是.NET 3.5版本比显式循环更"糟糕":它需要两次遍历数据(一次用于`ToArray`调用,一次用于`Join`调用)和一个额外的分配(由ToArray`生成的数组). (9认同)

Bri*_*ian 5

如果您想要一个字符串作为HashSet中值的串联,则应该可以使用...

class Program
{
    static void Main(string[] args)
    {
        var set = new HashSet<string>();
        set.Add("one");
        set.Add("two");
        set.Add("three");
        var count = string.Join(", ", set);
        Console.WriteLine(count);
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)