[英]How do I convert a list of int to a list of Nullable<int>?
我有一些需要List<int?>
东西,我有一个List<int>
。
我可以写:
var items = value.Select(num => (int?) num).ToList();
但这真的是最简单的方法吗?
这会有用吗?
var items = value.Cast<int?>().ToList();
您也可以使用List.ConvertAll
List<int?> items = value.ConvertAll<int?>(i => i);
它甚至可以在.NET 2中运行。除此之外没有任何优势,因此我将继续使用LINQ(由Tamim Salem建议的Enumerable.Cast
),因为它更具可用性和可读性。
但是如果你需要List<int?>
而不是List<int>
为什么你不首先使用它?
你可以使用:
List<int?> newList = oldList.ConvertAll<int?>(i => i);
虽然它可能在下面足够接近同样的事情。
尝试这个
var result1 = list.ConvertAll<int?>(x => x);
List<int> a = new List<int>() { 1, 2, 3, 4 };
List<Nullable<int>> b = new List<int?>();
for (int i = 0; i < a.Count; i++)
{
b.Add(new Nullable<int>(a[i]));
}
如果你想省略lambdas和投影。
避免演员表和转换
List<int?> nullInts = new List<int?>();
listInts.ForEach(i => nullInts.Add(new int?(i)));
如果您发现自己这么做,可以在扩展方法中实现@ TamimSalem的解决方案:
public static class EnumerableExt
{
public static List<T?> ToNullableList<T>(this IEnumerable<T> sequence) where T: struct
{
return sequence.Cast<T?>().ToList();
}
}
然后像这样称呼它:
var items = value.ToNullableList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.