使用C#中其他数组的内容创建新数组
本文关键字:数组 新数组 创建 其他 使用 | 更新日期: 2023-09-27 18:23:54
我想知道从其他数组的内容创建新数组的最有效方法。
我有几种类型的字符串数组:
public readonly string[] Taiwan = { "TW", "TWO" };
public readonly string[] Vietnam = { "HM", "HN", "HNO" };
public readonly string[] Korea = { "KQ", "KS" };
public readonly string[] China = { "SS", "SZ" };
public readonly string[] Japan = { "T", "OS", "NG", "FU", "SP", "Q", "OJ", "JNX", "IXJ", "KAB", "JA", "JPx" };
现在可以用类似的方式创建一个新的字符串数组吗?
public readonly string[] ASIA = { Taiwan, Vietnam, Korea, China, Japan};
它将包含其他数组中包含的所有字符串。
string[] ASIA = new []{ Taiwan, Vietnam, Korea, China, Japan}
.SelectMany(s => s) // not entirely sure what these abbreviations are...
.ToArray();
您可以尝试生成一个数组数组,然后使用SelectMany
将其压平为字符串数组。
public readonly string[] ASIA = new[] { Taiwan, Vietnam, Korea, China, Japan}
.SelectMany(countryCode => countryCode )
.ToArray();
您可以连接两个数组。
string[] newArray = arrA.Concat(arrB).ToArray();
我还认为,在您的情况下,您可能需要考虑不同类型的数据结构。我认为字典可能很合适。
Dictionary<string, string[]> Asia = new Dictionary<string, string[]>();
Key可以是Country,值可以是该国家/地区的数组。
如果只想在字符串数组中使用唯一值,也可以使用聚合和并集来实现这一点
ASIA = ( (new IEnumerable<string>[ ] {
Taiwan , Vietnam , Korea , China , Japan
} )
.Aggregate ( ( a , b ) => a.Union ( b ) )
.ToArray();
您可能想要创建一个锯齿状数组,如下所示:
string[][] ASIA = new string[][] { Taiwan, Vietnam, Korea, China, Japan };