C# 如何为静态数组创建personal ToList()函数
我必须为所有类型的静态数组创建ToDynamic函数,该函数返回一个新的动态列表,其中包含从中调用该函数的数组元素,就像ToList一样,如下所示:C# 如何为静态数组创建personal ToList()函数,c#,C#,我必须为所有类型的静态数组创建ToDynamic函数,该函数返回一个新的动态列表,其中包含从中调用该函数的数组元素,就像ToList一样,如下所示: int [] x = {1,2,3,4}; List<int> arr = x.ToDynamic(); public static class ArrayExtensions { public static List<T> ToDynamic<T>(this T[] items) =&
int [] x = {1,2,3,4};
List<int> arr = x.ToDynamic();
public static class ArrayExtensions
{
public static List<T> ToDynamic<T>(this T[] items)
=> new List<T>(items ?? throw new ArgumentNullException(nameof(items)));
}
你可以用x.ToList做你想做的事。如果您真的想自己实现它,您可以编写一个通用扩展方法,如下所示:
int [] x = {1,2,3,4};
List<int> arr = x.ToDynamic();
public static class ArrayExtensions
{
public static List<T> ToDynamic<T>(this T[] items)
=> new List<T>(items ?? throw new ArgumentNullException(nameof(items)));
}
扩展方法的方案是
// partial: often we have many extensions on collections (Tree, Aggregations etc.)
// which are implemented in different files
public static partial class EnumerableExtensions {
// IEnumerable<T> - choose argument's type being as much generic and basic as you can
public static List<T> ToDinamic<T>(this IEnumerable<T> source) {
// Validate argument(s)
if (null == source)
throw new ArgumentNullException(nameof(source)); // or return null or empty list
return new List<T>(source);
}
}
或者只列出arr=newlistx;这取决于ToDynamic扩展方法的来源。。。点击F12并查看它来自哪个程序集,然后尝试查找它的源代码,或者让ReSharper为您反编译它。我这样尝试过,但结果是错误的`@Suren您可以找到源代码。但是,您试图用自己的方法归档的是什么?