将IEnumerable <dynamic>转换为string []

Ben*_*Ben 3 c# massive

我有下面的代码,基本上使用MassiveORM从DB返回单列字符串值.

Query()方法返回IEnumerable.我试图找出如何将其转换或转换为简单的字符串数组.

使用下面我得到

无法将类型为'System.Object []'的对象强制转换为'System.String []

谢谢

var response = new MakesResponse();
var tbl = new DynamicModel("SONICAPI");
string sql = "EXEC pGetMakes";
var result = tbl.Query(sql);

return new MakesResponse()
{
makes = (string[])result.ToArray(),
ExecutionTime = sw.ElapsedMilliseconds,
Result = "200",
ResultText = "OK",
Source = "DB"
};
Run Code Online (Sandbox Code Playgroud)

Pat*_*man 9

您可以强制转换可枚举的项目.这只有在它们确实有效时才有效string:

makes = result.Cast<string>().ToArray()
Run Code Online (Sandbox Code Playgroud)

否则,ToString如果有一个很好的实现,你可以打电话:

makes = result.Select(o => o.ToString()).ToArray()
Run Code Online (Sandbox Code Playgroud)