C# 转换IEnumerable<;动态>;串

C# 转换IEnumerable<;动态>;串,c#,massive,C#,Massive,我有下面的代码,基本上是使用MassiveORM从DB返回一列字符串值 Query()方法返回IEnumerable。我试图找出如何将其转换为一个简单的字符串数组 使用下面的 无法将类型为“System.object[]”的对象强制转换为类型为“System.String[] 谢谢 var response = new MakesResponse(); var tbl = new DynamicModel("SONICAPI"); string sql = "EXEC pGetMakes"; v

我有下面的代码,基本上是使用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"
};

您可以强制转换可枚举项。只有当它们确实是
字符串时,这才有效:

makes = result.Cast<string>().ToArray()

您好,makes=result.Cast().ToArray()使我无法将“System.Dynamic.ExpandoObject”类型的对象强制转换为“System.String”@Ben可能您的结果也包含字符串以外的类型,例如一些空值,所以可能它不包含
字符串,正如您所说,而是一个类型为
ExpandObject
@bentry
result.Cast().Select(e=>(string)((IDictionary)e).FirstOrDefault().Value.ToArray()
.Patrick的对象,这给了我一个键/值对集合。键总是“make”,这是db列名,值是我试图访问的字符串值。您知道如何将单个结果强制转换为字符串吗?
makes = result.Select(o => o.ToString()).ToArray()