如何将整数数组转换为逗号分隔的字符串

时间:2014-04-11 05:08:43

标签: c# asp.net arrays string

这是我的Ids整数数组

GoalIds{int[7]}
    [0]: 31935
    [1]: 31940
    [2]: 31976
    [3]: 31993
    [4]: 31994
    [5]: 31995
    [6]: 31990

我从这段代码中获取上述数组

Array GoalIds = FilteredEmpGoals.Select(x => x.GoalId).Distinct().ToArray();

我正在尝试将其转换为逗号分隔的字符串,如

31935, 31940, 31976, 31993, 31994, 31995, 31990

为实现这一点,我尝试了

var result = string.Join(",", GoalIds);

但它在结果中给了我"System.Int32[]"

请让我更新我在这里犯错的地方。

参考:我查看了here,示例工作正常。

更新

REF:正如@paqogomez建议的那样

我试图将值存储在数组中,但可能是它没有正确处理值。现在我确实改变了制作数组的代码,如下所示

int[] GoalIds = FilteredEmpGoals.Select(x => x.GoalId).Distinct().ToArray();

现在它对我来说很好。

2 个答案:

答案 0 :(得分:4)

在将GoalIds声明为Array类型时,您无法获得能够在String.Join中运行的迭代器。

尝试:

int[] GoalIds = FilteredEmpGoals.Select(x => x.GoalId).Distinct().ToArray();
var result = string.Join(",", GoalIds);

正如@JeppeStigNielsen在评论中指出的那样,这也是有效的并且消除了ToArray电话:

var GoalIds = FilteredEmpGoals.Select(x => x.GoalId).Distinct();

答案 1 :(得分:2)

我已经在c#中运行了这段代码,而且它的工作很好,不知道你的问题是什么

int[] GoalIds = new int[7] { 31935,31940, 31976,31993, 31994, 31995, 31990};
var a = string.Join(",", GoalIds);
Console.WriteLine(a);
Console.ReadLine();