我有这个例程来改变数组中的所有元素......
for (int i = 0; i < sOutputFields.GetUpperBound(0); i ++)
{
sOutputFields[i] = clsSQLInterface.escapeIncoming(sOutputFields[i]);
}
sOutputFields
是一维string
数组。 escapeIncoming()
是一个返回string
。
我认为这可以重写。
sOutputFields.Select(el => clsSQLInterface.escapeIncoming(el));
..但这似乎什么都不做(虽然没有抛出异常)。所以我试过..
sOutputFields =
(string[])sOutputFields.Select(el => clsSQLInterface.escapeIncoming(el));
..但是我在执行时遇到了这个异常..
“无法将'WhereSelectArrayIterator`2 [System.String,System.String]'类型的对象强制转换为'System.String []'。”
如何解决?
答案 0 :(得分:3)
Select不会返回可以显式转换为数组的对象。您需要在作业中执行sOutputFields.Select(el => clsSQLInterface.escapeIncoming(el)).ToArray<string>()
。
答案 1 :(得分:1)
使用:
sOutputFields = sOutputFields.Select(el => clsSQLInterface.escapeIncoming(el)).ToArray();
答案 2 :(得分:1)
返回类型是IEnumerable,您需要转换为数组:
sOutputFields = sOutputFields.Select(el => clsSQLInterface.escapeIncoming(el)).ToArray();
答案 3 :(得分:0)
sOutputFields = sOutputFields.Select(el => clsSQLInterface.escapeIncoming(el)).ToArray();