Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

266
Views
No se puede aplicar la indexación con [] a una expresión de tipo 'tipo'

¡todo el mundo! Soy nuevo en la programación así que espero su ayuda! Estoy tratando de regresar e indexar la matriz, pero no tengo idea de qué significa el error. Tengo este por primera vez.

esta es mi primera clase

 using System; using System.Linq; public class Group { private Student[] students; public Group(Student[] students) { if(students.Length < 5) { throw new ArgumentException("Incorrect group"); } this.students = students; } public int IndexOfMaxGrade() { Student[] sorted = students.OrderBy(c => c.grade).ToArray(); //int max = sorted[^1].grade; //foreach (var item in students) //{ // if(item.grade == max) // { // } //} return Array.IndexOf(students, sorted[^1].grade); } public int IndexOfMinGrade() { Student[] sorted = students.OrderBy(c => c.grade).ToArray(); return Array.IndexOf(students, sorted[0].grade); } }

y obtuve "No se puede aplicar la indexación con [] a una expresión de tipo 'tipo'" en este código (últimas 2 líneas)

 Group studentGroup; try { studentGroup = new Group(students.ToArray()); } catch (ArgumentException argumentException) { Console.WriteLine(argumentException.Message); return; } Console.WriteLine(studentGroup[studentGroup.IndexOfMinGrade()]); Console.WriteLine(studentGroup[studentGroup.IndexOfMaxGrade()]); } }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si desea indexar un Group directamente, deberá proporcionar un indexador:

 public class Group { public Student this[int i]{ get { return students[i]; } set { students[i] = value; } } ...

Verá, su grupo tiene una matriz de estudiantes, pero eso no significa que sea, en sí mismo, directamente indexable como lo es una matriz.

cuando lo hiciste:

 Group studentGroup = ...

Más tarde intentó acceder a algo en algún índice dentro del Grupo:

 studentGroup[studentGroup.IndexOfMinGrade()]; //like this studentGroup[1]; //or like this, for example

C# no mirará su tipo de grupo y pensará "solo tiene un elemento de datos dentro, que es una matriz, por lo que permitiré que alguien coloque un especificador de índice como [1] junto a una instancia de un grupo, y yo' recuperaré el elemento desde dentro de la matriz interna"..

..solo dice "no se puede indexar un grupo"


Si agrega un indexador, entonces felices días. También podrías haber hecho algo como:

 class Group{ ... public Student GetStudentAt(int index){ return students[index]; }

Y luego llamó:

 Console.WriteLine(studentGroup.GetStudentAt(studentGroup.IndexOfMinGrade()));

Conceptualmente equivalente..

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!