2012-12-15 27 views
-1

這是代碼:我如何比較兩個列表? <long[]>和<int>指數法

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個數字。 因此,來自thr 5272的每個數字就像一個索引。

現在我有這個List<long[]> list_of_histogramsR至極包含16595個指數法。 我想檢查一下,如果數字中的任何數字都是list_of_histogramsR作爲索引號,那麼做一些事情。

例如以數字的第一個數字是41.所以當list_of_histogramsR ==的索引號41在數字41的數量做一些事情。然後對於可變數字中的下一個數字也是如此。

的問題是,對IF線即時得到錯誤:錯誤33操作「==」不能被應用於類型的操作數「長[]」和「INT」

爲什麼呢?

+0

順便說一下你得到的錯誤是因爲list_of_histogramsR是一個包含數組的數組每個項目,而你的號碼是一個包含整數的數組。所以你將一個數組(long [])與一個整數進行比較,那就是你得到的錯誤。 – Thraka

回答

3

您可以使用Contains檢查,如果列表中包含特定號碼(投整型到long):

list_of_histogramsR[i].Contains((long)numbers[i])