Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C中其他数组的内容创建新数组#_C#_Arrays - Fatal编程技术网

C# 使用C中其他数组的内容创建新数组#

C# 使用C中其他数组的内容创建新数组#,c#,arrays,C#,Arrays,我想知道从其他数组的内容创建新数组的最有效方法 我有几种类型的字符串数组: 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" }; publi

我想知道从其他数组的内容创建新数组的最有效方法

我有几种类型的字符串数组:

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[] newArray = arrA.Concat(arrB).ToArray();
<>我也认为,在你的情况下,你可能想考虑一种不同类型的数据结构。我认为字典可能很合适

Dictionary<string, string[]> Asia = new Dictionary<string, string[]>();
字典亚洲=新字典();

键可以是国家,值可以是该国家的数组。

您可以尝试生成数组数组,然后使用
SelectMany将其展平,返回到字符串数组中

string[] ASIA = new []{ Taiwan, Vietnam, Korea, China, Japan}
                      .SelectMany(s => s)  // not entirely sure what these abbreviations are...
                      .ToArray();
public readonly string[] ASIA = new[] { Taiwan, Vietnam, Korea, China, Japan}
    .SelectMany(countryCode => countryCode )
    .ToArray();

如果您只希望字符串数组中的值唯一,还可以使用聚合和联合来完成此操作

ASIA =  ( (new IEnumerable<string>[ ] { 
                Taiwan , Vietnam , Korea , China , Japan 
        } )
            .Aggregate ( ( a , b ) => a.Union ( b ) )
            .ToArray();
ASIA=((新的IEnumerable[]){
台湾、越南、韩国、中国、日本
} )
.合计((a,b)=>a.联合(b))
.ToArray();

您可能希望创建一个类似这样的:

string[][] ASIA = new string[][] { Taiwan, Vietnam, Korea, China, Japan };

我认为您需要考虑一种不同的存储机制。现在可能是在Sql表中表示此数据的时候了。它将更易于管理,并且更直观。您使用过Sql吗?我正在使用此数组在数据分析中进行一些排除,稍后我想在我的工具中添加一个设置按钮来编辑exclus除其他内容外,您还建议我使用一个小型数据库来存储设置?或者它最好是一个XML文件?谢谢您的评论。对于那些不熟悉的人来说。这比所示的其他方法效率要低得多。您正在为聚合的每个步骤构建每个集合的内部
HashSet
打开。如果具有唯一值很重要,您只需将
Distinct
调用粘贴到
SelectMany
的末尾,它也会做同样的事情,让读者更清楚,并且表现更好。此外,您的演员阵容也没有做任何有意义的事情。