你能投一个 List<int>List<string> 不知怎的?

我知道我可以循环。ToString()的事情,而是一个铸就是真棒。

我在C#2.0(因此没有 皇宫).

有帮助吗?

解决方案

.网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(); });

沿着这些线路的东西。


投票格伦的答案,这可能是正确的代码;-)

你就不能直接转换为不明确或隐含的投存在从int串,也会 是一个方法涉及。ToString()例如:-

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

编辑 -或因为其他人已经指出的相当出色,使用intList.ConvertAll(代表(int i){return i。ToString();});然而很明显你们仍然有用。ToString()它是一个转换而不是一个演员。

你可以使用:

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

你必须建立一个新的名单。潜在的位的陈述 List<int>List<string> 是完全不相容--在64位平台,例如,单个成员甚至不相同的大小。

这在理论上是可能的治疗 List<string> 作为一个 List<object> -这让你成的令人兴奋的世界的协变和逆变的,而不是目前支持通过C#或VB.NET.

result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList()

替代参数的结果,并listOfInt到你的参数

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top