在.NET 2.0中将Cast List <int>转换为List <string>
你能不能把List<int>成List<string> ? 
我知道我可以循环和.ToString()的东西,但一个演员将是真棒。
我在C#2.0(所以没有LINQ )。
  .NET 2.0具有ConvertAll方法,您可以在其中传递转换器函数: 
 List<int> l1 = new List<int>(new int[] { 1,2,3 } ); List<string> l2 = l1.ConvertAll<string>(delegate(int i) { return i.ToString(); }); 
2010年更新
 List<int> l1 = new List<int>(new int[] { 1,2,3 } ); List<string> l2 = l1.ConvertAll<string>(x => x.ToString()); 
  C#2.0能做List<T>.Convert吗? 如果是这样,我认为你最好的猜测就是用一个代表来使用它: 
 List<int> list = new List<int>(); list.Add(1); list.Add(2); list.Add(3); list.Convert(delegate (int i) { return i.ToString(); }); 
沿着这些线的东西。
Upvote格伦的答案,这可能是正确的代码;-)
您可以使用:
 List<int> items = new List<int>(new int[] { 1,2,3 } ); List<string> s = (from i in items select i.ToString()).ToList(); 
你不能直接强制转换,因为没有显式或隐式强制转换从int到string,它必须是涉及.ToString()的方法,例如: –
 foreach (int i in intList) stringList.Add(i.ToString()); 
编辑 – 或者像其他人指出的那样出色,使用intList.ConvertAll(delegate(int i){return i.ToString();});,但是显然你仍然需要使用.ToString(),这是一个转换,而不是一个演员。
 你必须build立一个新的列表。  List<int>和List<string>的基本位表示是完全不兼容的,例如,在64位平台上,单个成员甚至不是相同的大小。 
 将List<string>当作List<object>是理论上可行的 – 这可以让你进入令人兴奋的协变和逆变世界,而且目前还不被C#或VB.NET支持。 
 result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList() 
将参数result和listOfIntreplace为您的参数