2010-12-16 2 views
0

Я выбираю данные из Datatable, используя Linq. Выбор будет столбцом, а требование - вернуть функции string[]. Я не получаю, как сделать преобразование результатов в string[].как преобразовать результаты Linq в строку []?

Пожалуйста, руководство, ниже мой код:

public string[] GetCompletionList(string prefixText) 
{ 
    if (HttpContext.Current.Cache["Dir"] == null) 
    { 
    return null; 
    } 

    DataTable dt = (DataTable)HttpContext.Current.Cache["Dir"]; 
    var details = from addresses in dt.AsEnumerable() 
     where SqlMethods.Like(prefixText, prefixText + "%") || SqlMethods.Like(prefixText, "%" + prefixText + "%") 
     select addresses["Details"]; 



    return details.tol; 

} 

ответ

4

Если каждый элемент в details уже строка просто использовать IEnumerable<T>.ToArray():

return details.ToArray(); 

Если вам нужно преобразовать его первым (в моем примере Я использую ToString()), вы можете использовать Select для проецирования каждого элемента на строку:

return details.Select(x => x.ToString()).ToArray(); 
+0

Спасибо, Одед, извините, я не очень хорошо знаю лямбда-выражения и Linq. Руководство Plese, где я должен использовать этот код? Спасибо, один раз. – haansi 2010-12-16 10:53:08

+0

@haansi - Я написал только последний оператор возврата вашей функции. – Oded 2010-12-16 10:53:49

0

Я не уверен, что ToArray существует на полученный объект из запроса, но если это делает, вы можете попробовать:

return details.ToArray(); 

Если это не сработает, попробуйте создать список его первым:

return details.ToList().ToArray(); 
Смежные вопросы