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
的末尾,它也会做同样的事情,让读者更清楚,并且表现更好。此外,您的演员阵容也没有做任何有意义的事情。