如何将列表中的数据添加到新的 []

本文关键字:添加 数据 列表 | 更新日期: 2023-09-27 18:30:44

我有一个包含字符串的列表o

    "Hist 2368#19:00:00#20:30:00#Large Conference Room",
    "Hist 2368#09:00:00#10:30:00#Large Conference Room",

我想将这些字符串添加到此:

var lines = new[]
{  
    "Meeting#19:00:00#20:30:00#Conference", 
};

我将如何使用列表中的数据o并将其插入lines

如何将列表中的数据添加到新的 []

数组是自然的,固定长度的。 您需要创建一个新数组,并将其分配给lines

lines = lines.Concat(o).ToArray();

交互

lines = o.AddRange(lines).ToArray();

更新:修复了愚蠢的错误。

由于 Lines 已经是一个数组,因此您需要先将值合并到列表中:

foreach (var item in lines)
    o.Add(item);

然后将 o 更改为数组:

o.ToArray();  ///returns String[] with all three values.

你也可以像其他人指出的那样使用 .concat(),它会在内部做同样的事情。

要考虑的另一件事是lines变量具有固定大小的Array(T)类型,因此您必须分配足够的空间来容纳所有数据或将数据复制到新构造中。

如果您为lines分配了足够的空间来保存所有数据,则如下所示:

var o = new List<string>
{
    "Hist 2368#19:00:00#20:30:00#Large Conference Room",
    "Hist 2368#09:00:00#10:30:00#Large Conference Room",
};
var lines = new string[3] { "Meeting#19:00:00#20:30:00#Conference", null, null };
// Copy the data from o to the end of lines
o.CopyTo(lines, 1); // Start a 1 to not overwrite the existing data

另请参阅:

  • 复制到(T[] 数组)

否则,如果您有两个不同的数据源要合并到新构造中,那么我建议使用 Concat 方法。这将组合IEnumerable(T)类型,您可以使用ToArrayToList为数据提供正确的容器。

var o = new List<string>
{
    "Hist 2368#19:00:00#20:30:00#Large Conference Room",
    "Hist 2368#09:00:00#10:30:00#Large Conference Room",
};
var lines = new[]
{  
    "Meeting#19:00:00#20:30:00#Conference", 
}.Concat(o).ToArray();

确保您知道要使用的容器。

您可以使用 Enumerable.Concat 连接这些值:

lines = O.Concat(lines).ToArray();

简单地说,这个

lines = lines.Concat(o).ToArray();

试试这个:

        List<string> myList = new List<string>()
        {
            "My First String in List",
            "My Second String in List"
        };
        string[] myArray = new string[] { "My Array First String" };
        List<string> myArrayList = new List<string>();
        foreach (var item in myArray)
        {
            myArrayList.Add(item);
        }
        foreach (var item in myList)
        {
            myArrayList.Add(item);
        }
        foreach (var item in myArrayList)
        {
            Console.WriteLine(item);
        }
        Console.Read();