这是我的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();
现在它对我来说很好。
答案 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();