Kir*_*ril 3 c# concurrency multithreading parallel-extensions
我在弄清楚如何Parallel.ForEach使用2D数组字符串调用时遇到了一些麻烦:
string[,] board = new string[,]{
{"A", "B", "C", "D", "E" },
{"F", "G", "H", "I", "J"},
{"K", "L", "M", "N", "O"},
{"0", "1", "2", "3", "4"}};
Parallel.ForEach(board, row =>
{
for (int i = 0; i < row.Length; ++i)
{
// find all valid sequences
}
});
Run Code Online (Sandbox Code Playgroud)
如果我没有明确指定类型,我会收到以下错误:
无法从用法中推断出方法'System.Threading.Tasks.Parallel.ForEach(System.Collections.Generic.IEnumerable,System.Action)'的类型参数.尝试显式指定类型参数.
明确指定类型参数的正确方法是什么?
你遇到的问题是二维数组没有实现IEnumerable<one-dimensional-array>.(它确实实现了IEnumerable,但它是一个IEnumerable"扁平化"数组的字符串.)你可以做两件事:
将其更改string[,]为锯齿状的数组数组string[][].
实现自己的扩展方法,迭代二维数组并将其转换为IEnumerable<one-dimensional-array>.
| 归档时间: |
|
| 查看次数: |
4253 次 |
| 最近记录: |