1

如何在 C# 中合并/合并两个 StringCollection

var collection1 = new StringCollection () { "AA", "BB", "CC" };
var collection2 = new StringCollection () { "DD", "EE", "FF" };
var resultCollection = collection1 + collection2 ; // TODO
                               
4

4 回答 4

2

您可以将所有内容复制到这样的数组中

    var collection1 = new StringCollection() { "AA", "BB", "CC" };
    var collection2 = new StringCollection() { "DD", "EE", "FF" };

    var array = new string[collection2.Count + collection1.Count];

    collection1.CopyTo(array, 0);
    collection2.CopyTo(array, collection1.Count);
于 2020-10-14T16:17:35.747 回答
1

如果您仍然想要一个字符串集合,您可以使用AddRange

var collection1 = new StringCollection () { "AA", "BB", "CC" };
var collection2 = new StringCollection () { "DD", "EE", "FF" };
var resultCollection = new StringCollection();
resultCollection.AddRange(collection1.Cast<string>.ToArray());
resultCollection.AddRange(collection2.Cast<string>.ToArray());

似乎很奇怪,StringCollection没有任何直接支持添加其他StringCollections。如果效率是一个问题,Beingnin 的答案可能比这里的答案更有效,如果您仍然需要它,StringCollection您可以获取生成的数组并用于AddRange将该字符串数组添加到新的StringCollection

于 2020-10-14T16:40:18.147 回答
0

您可以转换为数组并使用Union,请注意这也会删除重复项

var resultCollection = collection1.Cast<string>().Union(collection2.Cast<string>())
于 2020-10-14T16:12:37.913 回答
-2

您可以占用 List 而不是 StringCollection ...

        var collection1 = new List<string>() { "AA", "BB", "CC" };
        var collection2 = new List<string>() { "DD", "EE", "FF" };
        var resultCollection = collection1.Concat(collection2).ToList();
于 2020-10-14T16:20:45.607 回答