我有此例程其改变的数组中的所有元素...使用lambda函数重写这个数组操作?
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 []'。“
如何解决?
查询结果是不可改变的,并且=>不是分配新建分配FY运营商。 – asawyer 2010-12-08 14:45:21
您的LINQ代码不会重写,而是创建一个新的集合 – Max 2010-12-08 14:46:24