2016-06-11 7 views
0

指定されたキャストは無効です。特定のインデックスではなく、配列に格納されているすべての値から最大値または最小値を取得する方法を教えてください。指定されたキャストは無効です。ギザギザの配列からすべての値を取得します。

int max = jArray.Cast<int>().Max(); 
       System.Console.Write("\n\n Max marks:" + max); 

ジャグ配列の宣言:

string TotalStudents; 

     System.Console.Write("Enter the Total No. Of Students:"); 
     TotalStudents = Console.ReadLine(); 

     int value; 
     bool result = int.TryParse(TotalStudents, out value); 

     JaggedArray jag = new JaggedArray(value); 

     int[][] jArray = new int[jag.noOfStudents][]; 



     for (int i = 0; i < jag.noOfStudents; i++) 
     { 


      System.Console.Write("Enter the Total No. Of Subjects of Student:" + i + ":\t"); 
      string TotalSubjects = Console.ReadLine(); 

      int Subjectvalue; 
      bool Sresult = int.TryParse(TotalSubjects, out Subjectvalue); 
      jArray[i] = new int[Subjectvalue]; 

      for (int a = 0; a < Subjectvalue; a++) 
      { 
       System.Console.Write("\nEnter the marks obtained of subject:" + a + " of student " + i + ":\t"); 
       string TotalMarks = Console.ReadLine(); 

       int Marksvalue; 
       bool Mresult = int.TryParse(TotalMarks, out Marksvalue); 
       jArray[i][a] = Marksvalue; 

      } 

答えて

1

JArrayintに特有のキャストが無効である理由です、ジャグ配列(配列の配列)です。

SelectManyを使用して構造体をフラット化し、Maxを探してください。

int max = jArray.SelectMany(x=>x.ToArray()).Max(); 
関連する問題