Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

269
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda