使用LINQ将数组对象[,]转换为数组

MiB*_*Bol 1 c# linq performance sap

我从外部系统获得的信息总是以下列格式返回给我:

SAP数据

我需要将此信息从object [,]转换为"|"上的数组拆分.我一直在VB中使用LINQ来获取这些信息:

Dim vSAPdataTemp(,) As Object = Local_SAPtableData.Data

Dim vLinq = From TempResult In vSAPdataTemp
            Select Value = Array.ConvertAll(TempResult.ToString.Split(RFC_DelimiterChar),
                                    Function(vVal) CObj(vVal.ToString.Trim))

Dim vNewSAPdata() As Object = vLinq.ToArray
Run Code Online (Sandbox Code Playgroud)

但现在我转向C#,我遇到了以下错误:

LINQ错误

使用此代码时:

var vSAPdataTemp = Local_SAPtableData.Data;

Local_SAPtableData.FreeTable();
fw.gcCleaner();
Local_SAPtableData = null;

var vLinq = (from TempResult in (vSAPdataTemp as Object[,])
                       select string strValue = Array.ConvertAll(TempResult.Split(stcVariables.strSapRfcDelimiterChar), 
                           vVal => (vVal as object).ToString().Trim()));

var vNewSAPdata = vLinq.ToArray<string>();
Run Code Online (Sandbox Code Playgroud)

此问题有哪些(如果有)解决方法?

Mar*_*zek 5

你很可能不得不使用Cast电话:

from TempResult in (vSAPdataTemp as object[,]).Cast<object>()
(...)
Run Code Online (Sandbox Code Playgroud)

那是因为object[,]实现了非泛型IEnumerable,它与LINQ不兼容.(我不知道为什么它在VB.NET中起作用).