簡體   English   中英

從其他一維 arrays 初始化一維數組

[英]Initializing a one-dimensional array from other one-dimensional arrays

我覺得這有一個非常簡單的答案,我就是無法理解,但這是我在互聯網上找不到任何相關內容后的拍攝。
基本上,我想從 C# 中的 javascript 做這樣的事情:

var abc = ["a", "b", "c"]
var abcd = [...abc, "d"]

將一維數組abc的內容“傳播”到另一個一維數組abcd中,在初始化期間添加新值。
但是,在 C# 中復制此行為將無法按預期工作:

string[] abc = { "a", "b", "c" };
string[] abcd = { abc, "d" };

我在 C# 中最接近復制它的是列表,如下所示:

string[] abc = { "a", "b", "c" };
var abcd = new List<string>();
abcd.AddRange(abc);
abcd.Add("d");

我可以通過直接用“d”字符串初始化列表來在上面的示例中保存一行(順序對我來說並不重要,我只是檢查集合是否包含我正在尋找的某個項目),但與初始化數組相比,使用 List 本身效率非常低,因為我無意稍后修改或添加項目。
有什么方法可以在一行中從其他一維 arrays 初始化一維數組?

如果您正在尋找單線,您可以使用Enumerable.Append()方法 如果希望abcd的類型為字符串數組,您可以在末尾添加一個.ToArray()

你有 go:

string[] abcd = abc.Append("d").ToArray();

注意: Append()方法在 .NET Framework 4.7.1 及更高版本中可用

對於 .NET 框架 4.7 或更早版本,一種方法是使用Enumerable.Concat()方法

string[] abcd = abc.Concat(new[] { "d" }).ToArray();
string[] abcde = abc.Concat(new[] { "d", "e" }).ToArray();

在 1 行中:

string[] abc = { "a", "b", "c" };
var abcd = new List<string>(abc) { "d" };

列表的構造函數可以采用另一個列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM