使用LINQ连接两个不同类型的列表
是否可以连接两个不同类型的列表?
string[] left = { "A", "B", "C" }; int[] right = { 1, 2, 3 }; var result = left.Concat(right);
上面的代码有点错误。 如果类型匹配(例如,两者都是整数或字符串),它就有效。
POM
你可以把它装箱。
var result = left.Cast
result
将是IEnumerable
。
然后要取消它,你可以使用OfType OfType
。
var myStrings = result.OfType(); var myInts = result.OfType();
您可以将两者都转换为公共基类型(在本例中为object
),或者您可以转换其中一个列表的类型,以便您可以将它们组合起来:
right.Select(i = i.ToString())
要么
left.Select(s => int.Parse(s)) // Careful of exceptions here!
我所知道的唯一方法就是:
var result = left.Concat(right.Select(i = i.ToString()));