C# 查询数据库JobID调用string.Join返回数组报错如何解决
问题修复方案
报错原因
string.Join方法返回值为单个字符串类型,你尝试将其赋值给声明为string[]数组类型的变量y,类型不匹配触发报错。- 额外冗余逻辑:你在单个JobID字符串
x上调用ToArray()会得到char[]字符数组,完全不符合收集JobID的需求,预先初始化的固定长度100的字符串数组也没有实际作用。
对应实现代码
场景1:返回每个JobID为单独元素的字符串数组
public string[] GetAgentJobId() { var agentName = _context.Table1.SqlQuery ("Select * from Table1 " + "CROSS APPLY string_split(AssignTo, ',') where value = 'name'").ToArray(); return agentName.Select(m => m.JobID.ToString()).ToArray(); }
场景2:返回每个JobID为单独元素的int数组
public int[] GetAgentJobId() { var agentName = _context.Table1.SqlQuery ("Select * from Table1 " + "CROSS APPLY string_split(AssignTo, ',') where value = 'name'").ToArray(); return agentName.Select(m => m.JobID).ToArray(); }
场景3:返回所有JobID逗号拼接为单个元素的字符串数组
如果你需要的是把所有JobID用逗号拼接成一个完整字符串,再放在数组里返回,用以下实现:
public string[] GetAgentJobId() { var agentName = _context.Table1.SqlQuery ("Select * from Table1 " + "CROSS APPLY string_split(AssignTo, ',') where value = 'name'").ToArray(); string joinedJobIds = string.Join(",", agentName.Select(m => m.JobID.ToString())); return new string[] { joinedJobIds }; }
内容的提问来源于stack exchange,提问作者rrpqertyu
相关产品推荐
相关产品推荐

