-1

これはコードです:

var numbers =
               lightningsRegions.SelectMany(
          s => Regex.Matches(s, @"\[(\d+)[ -]+(\d+)\]")
               .Cast<Match>()
               .Select(m => m.Groups.Cast<Group>().Skip(1).Select(x => x.Value)
                                                          .ToArray())
               .Select(x => new { start = int.Parse(x[0]), end = int.Parse(x[1]) })
               .SelectMany(x => Enumerable.Range(x.start, x.end - x.start + 1))
        )
       .ToList();


                for (int i = 0; i < list_of_histogramsR.Count ; i++)
                {
                  if (list_of_histogramsR[i] == numbers[i])
                    {

                    }
                }

変数の数をインデックスの数と見なします。最後の数字には5372の数字が含まれています。したがって、5272 番目からの各数値はインデックスのようなものです。

これでList<long[]> list_of_histogramsR、16595 個のインデックスが含まれています。数字からの数字がインデックス番号として入っているかどうかを確認したいのですが、list_of_histogramsR何かをします。

たとえば、数値の最初の数値は 41 です。したがって、list_of_histogramsR のインデックス番号 41 == 数値の 41 に対して何かを行うとします。次に、変数番号の次の番号についても同じです。

問題は、IF 行でエラーが発生することです: エラー 33 演算子 '==' は型 'long[]' および 'int' のオペランドに適用できません

なんで ?

4

1 に答える 1

3

リストに特定の数値が含まれているかどうかを確認するために使用できますContains(int を a にキャストしますlong)。

list_of_histogramsR[i].Contains((long)numbers[i])
于 2012-12-15T09:23:31.263 に答える