LINQ Bug?从long列表中获取字符串数组

时间:2009-11-30 18:48:55

标签: linq-to-objects

我得到了这个      Unable to cast object of type 'System.Int64' to type 'System.String'. 来自以下代码段:

 IList<long> Ids = new List<long>();
 Ids.Add(6962056);
 Ids.Add(7117210);
 Ids.Add(13489241);

 var stringIds = Ids.Cast<string>().ToArray();

和Booooooooooooom ......想法?

2 个答案:

答案 0 :(得分:7)

你不能强制长一个字符串。您需要指定要将long转换为字符串的操作。我更喜欢使用Linq来选择新值:

var stringIds = Ids.Select(id => id.ToString());

答案 1 :(得分:1)

多数民众赞成因为你不能将长篇文章转换为字符串。

你很困惑

long l = 10;
string s = (string)l; // this will not work, l is not a string

long l = 10;
string s = l.ToString(); // this will work