将字符串数组转换为列表的通用方法

kru*_*rul 2 .net c# generics

我想创建一个函数,它将返回我在运行时指定的类型列表.我沿着这条路尝试了一些东西:

  public static List<T> GetMyList<T>(string[] itemList)
  {
     List<T>  resultList = new List<T>(itemList.Length);
     return resultList.AddRange(itemList);
  }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.显然我不完全了解如何传递要转换的类型.任何帮助将不胜感激.

编辑:看起来这是不可能的,但这里有更多信息.字符串数组将包含数字,我想将这些数字有时转换为int,有时转换为short.背后的想法是有一个通用函数,它将尝试将项目转换为我告诉它的任何类型列表.

Lee*_*Lee 7

您需要提供一种将字符串转换为T的方法 - 您可以使用以下方法执行此操作Func<string, T>:

public static List<T> GetMyList<T>(string[] itemList, Func<string, T> conversionFunc)
{
    return itemList.Select(conversionFunc).ToList();
}
Run Code Online (Sandbox Code Playgroud)

例如

List<int> ints = GetMyList(new[] { "1", "2", "3" }, s => int.Parse(s));
Run Code Online (Sandbox Code Playgroud)