我有一个很长的列表:
List<long> carIds;
我想将其转换为:
List<long?> ncarIds;
我已经做到了:
foreach(var item in carIds)
{
long? id = (int?)item;
ncarIds.Add(id);
}
有任何想法如何在一行中做到这一点?
答案 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();