#c# #asp.net
Вопрос:
Мне нужно создать функцию для получения данных из базы данных и возврата их в виде строкового массива. Я попробовал приведенный ниже код, но рядом с string.Join(",", x.ToArray());
ним появляется сообщение об ошибке, в котором говорится, что он не может быть преобразован в [].
Что я хочу сделать, так это вернуть все идентификаторы заданий, которые выполняются из запроса, в массиве, разделенном запятыми, как массив строк или массив int.
пожалуйста, помогите мне разобраться в этом
public string[] GetAgentJobId()
{
string x;
string[] y = new string[100];
var agentName = _context.Table1.SqlQuery
("Select * from Table1 "
"CROSS APPLY string_split(AssignTo, ',') where value = 'name'").ToArray();
foreach (var m in agentName)
{
x = m.JobID.ToString();
y = string.Join(",", x.ToArray());
}
return y;
}
Любая помощь будет признательна, спасибо
Комментарии:
1. Не могли бы вы, пожалуйста, предоставить входные данные и ожидаемые результаты? Вы хотите вернуть все JobID в виде строки? с разделением запятыми?
2. Вы присваиваете строку переменной, объявленной как массив, это не будет работать.
3. Обновлен вопрос @PrasadTelkikar
4. Вы не можете вернуть массив с помощью Join. Присоединяйтесь к преобразованию IEnumerable в строку с разделителем >
5. Может быть, вы пытаетесь заставить «y» быть
List<string>
там, где каждый из вас может.Add()
работать?
Ответ №1:
string.Join()
не возвращать массив, который вы можете попробовать следующим образом
public string[] GetAgentJobId()
{
var agentName = _context.Table1.SqlQuery
("Select * from Table1 "
"CROSS APPLY string_split(AssignTo, ',') where value =
name'").ToArray();
string[] y = new string[agentName.Length];
int i = 0;
foreach (var m in agentName)
{
y[i] = m.JobID.ToString();
i ;
}
return y;
}