如何为静态数组创建我的个人 ToList() 函数
Posted
技术标签:
【中文标题】如何为静态数组创建我的个人 ToList() 函数【英文标题】:How can I create my personal ToList() function for static arrays 【发布时间】:2018-02-09 09:06:55 【问题描述】:我必须为所有类型的静态数组创建ToDynamic()
函数,它返回一个新的动态列表,其中包含调用该函数的数组元素(就像ToList()
一样),如下所示:
int [] x = 1,2,3,4;
List<int> arr = x.ToDynamic();
【问题讨论】:
或者只是List<int> arr = new List<int>(x);
这取决于 ToDynamic()
扩展方法的来源...按 F12 并查看它来自哪个程序集并尝试找到它的源(或让 ReSharper 为您反编译)。跨度>
我试过这样但它是错误的` public static List@Suren 你可以找到源here。但是你想用你自己的方法归档什么? 【参考方案1】:ToDynamic(List oldList) List newList = new List (); for (int i = oldList.Count-1; i >= 0; i --) newList.Add(oldList[i]); 返回新列表;
你可以使用x.ToList()
来做你想做的事。如果你真的想自己实现,你可以写一个这样的通用扩展方法:
public static class ArrayExtensions
public static List<T> ToDynamic<T>(this T[] items)
=> new List<T>(items ?? throw new ArgumentNullException(nameof(items)));
【讨论】:
【参考方案2】:扩展方法的写法是
// 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);
【讨论】:
以上是关于如何为静态数组创建我的个人 ToList() 函数的主要内容,如果未能解决你的问题,请参考以下文章
如何为数组中的每个项目评估包含 settimeout 的函数(Javascript)