我需要上述功能,因为我只能将 StringCollection 存储到设置,而不是字符串列表。
如何将 List 转换为 StringCollection?
怎么样:
StringCollection collection = new StringCollection();
collection.AddRange(list.ToArray());
或者,避免中间数组(但可能涉及更多重新分配):
StringCollection collection = new StringCollection();
foreach (string element in list)
{
collection.Add(element);
}
使用 LINQ 很容易转换回来:
List<string> list = collection.Cast<string>().ToList();
使用 List.ToArray()
它将 List 转换为 Array,您可以使用它在StringCollection
.
StringCollection sc = new StringCollection();
sc.AddRange(mylist.ToArray());
//use sc here.
读这个
这是将 an 转换IEnumerable<string>
为StringCollection
. 它的工作方式与其他答案相同,只是将其包装起来。
public static class IEnumerableStringExtensions
{
public static StringCollection ToStringCollection(this IEnumerable<string> strings)
{
var stringCollection = new StringCollection();
foreach (string s in strings)
stringCollection.Add(s);
return stringCollection;
}
}
我会选择:
Collection<string> collection = new Collection<string>(theList);