使用LINQ连接两个不同类型的列表

Pom*_*air 7 c# linq

是否可以连接两个不同类型的列表?

string[] left = { "A", "B", "C" };
int[] right = { 1, 2, 3 };
var result = left.Concat(right);
Run Code Online (Sandbox Code Playgroud)

上面的代码有一个类型错误.如果类型匹配(例如,两者都是整数或字符串),它就有效.

POM

Dan*_*ite 16

你可以把它装箱.

var result = left.Cast<object>().Concat(right.Cast<object>());
Run Code Online (Sandbox Code Playgroud)

result会的IEnumerable<object>.

然后打开它,你可以使用OfType<T>().

var myStrings = result.OfType<string>();
var myInts = result.OfType<int>();
Run Code Online (Sandbox Code Playgroud)