当前位置:  开发笔记 > 编程语言 > 正文

在.NET 2.0中将List <int>转换为List <string>

如何解决《在.NET2.0中将List<int>转换为List<string>》经验,为你挑选了5个好方法。

你能ListList某种方式投出一个吗?

我知道我可以遍历和.ToString()这个东西,但是演员阵容会很棒.

我在C#2.0(所以没有LINQ).



1> Glenn Slaven..:

.NET 2.0具有ConvertAll可以传入转换器函数的方法:

List    l1 = new List(new int[] { 1, 2, 3 } );
List l2 = l1.ConvertAll(delegate(int i) { return i.ToString(); });



2> Luke..:

2010年更新

List l1 = new List(new int[] { 1,2,3 } );
List l2 = l1.ConvertAll(x => x.ToString());


谢谢!这为我节省了大量时间
不,lambda是在C#3.0中引入的,所以这在2.0中不起作用.

3> Erik van Bra..:

C#2.0能够做到List.Convert吗?如果是这样,我认为你最好的猜测是与代表一起使用:

List list = new List();
list.Add(1);
list.Add(2);
list.Add(3);
list.Convert(delegate (int i) { return i.ToString(); });

沿着那条线的东西.


Upvote Glenn的答案,这可能是正确的代码;-)



4> 小智..:

您可以使用:

List items = new List(new int[] { 1,2,3 } );
List s = (from i in items select i.ToString()).ToList();



5> ljs..:

您将无法直接转换它,因为从int到string不存在显式或隐式转换,它必须是涉及.ToString()的方法,例如: -

foreach (int i in intList) stringList.Add(i.ToString());

编辑 - 或正如其他人指出的那样,使用intList.ConvertAll(delegate(int i){return i.ToString();});但是很明显你仍然必须使用.ToString()并且它是一个转换而不是演员.


泛型类型之间存在强制转换与投影之间的投射能力无关.IE,即使`int`被隐式或显式转换为`string`,也不意味着`List `有一个隐式或显式转换为`List `.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有