верните массив в c# с помощью Join

#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;
}