문제

나는 데 문제가하는 방법을 알아내는 전화 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
        }
    });

지 않는 경우 지정 형식을 명시적으로 나는 다음과 같은 오류가:

형식 인수를 위한 방법 '시스템이다.Threading.작업입니다.병행합니다.ForEach(시스템입니다.컬렉션이 있습니다.일반적입니다.페이, 시스템입니다.액션)'할 수 없 유추에서 사용합니다.도 형식을 지정하는 인수 명시적으로 합니다.

무엇을 적절한 방법으로 유형을 지정하는 인수를 명시적으로?

도움이 되었습니까?

해결책

문제 당신은 2 차원 배열 구현되지 않습 IEnumerable<one-dimensional-array>.(그 구현 IEnumerable, 지만,그것은 IEnumerable 는 문자열"병"array.) 당신이 할 수 있는 두 가지:

  • 변경 string[,] 를 들쭉날쭉 한 배열의 배열, string[][].

  • 자신을 구현하는 확장하는 방법에 대해 반복되는 두 차원 배열로 전환하는 IEnumerable<one-dimensional-array>.

다른 팁

당신은 여전히 할 수 있게 만들이 작품과 함께 다중 차원 배열,사용 Parallel.ForParallel.ForEach:

string[,] board = new string[,] {
    {"A", "B", "C", "D", "E" },
    {"F", "G", "H", "I", "J"},
    {"K", "L", "M", "N", "O"},
    {"0", "1", "2", "3", "4"}
};

int height = board.GetLength(0);
int width = board.GetLength(1);

Parallel.For(0, height, y =>
    {
        for (int x = 0; x < width; ++x)
        {
            string value = board[y, x];
            // do whatever you need to do here
        }
    }
);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top