将long列表转换为可为null的long列表

时间:2019-03-11 08:58:49

标签: c#

我有一个很长的列表:

List<long> carIds;

我想将其转换为:

List<long?> ncarIds;

我已经做到了:

foreach(var item in carIds)
{
    long? id = (int?)item;
    ncarIds.Add(id);
}

有任何想法如何在一行中做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以使用以下LINQ语句:

ncarIds.AddRange(carIds.Cast<long?>());

请注意,这仍然会在内部循环,因此此处不会提高性能。

答案 1 :(得分:2)

通过投射Linq

List<long> carIds = new List<long>() { 1L, 2L };
List<long?> ncarIds = carIds.Cast<long?>().ToList();