我们有两组字符串数组,例如:
string[] a = new string[] {"value1","value2","value3"};
string[] b = new string[] {"value1","value2","value3"};
Run Code Online (Sandbox Code Playgroud)
我必须开发一个泛型方法,它应该将这两个字符串数组作为参数,并应返回组合后的:
public T[] ArrayItms(T1[] a, T2[] b)
{
return T[];
}
Run Code Online (Sandbox Code Playgroud)
我有点困惑,在泛型中这样做.
你可以使用LINQ来做到这一点:
public T[] ArrayItms<T>(T[] a, T[] b)
{
return a.Concat(b).ToArray();
}
Run Code Online (Sandbox Code Playgroud)
或者,通过复制数组手动执行:
public T[] ArrayItms<T>(T[] a, T[] b)
{
T[] result = new T[a.Length + b.Length];
Array.Copy(a, result, a.Length);
Array.Copy(b, 0, result, a.Length, b.Length);
return result;
}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,请注意未初始化的参数(未在上面的示例代码中完成).
阵列是如此2004年.
public IEnumerable<string> ArrayItms(IEnumerable<string> a, IEnumerable<string> b)
{
return a.Concat(b);
}
Run Code Online (Sandbox Code Playgroud)
您可以直接将数组传递给此函数,因为数组实现了IEnumerable.如果您确实需要数组结果,请.ToArray()在调用该函数后调用.或者因为它只是一个单行程序完全跳过该函数而只是调用.Concat()第一个数组.
请注意,这很容易转换为适用于任何类型的通用函数.但到目前为止,你只是说你关心字符串.