Não foi possível converter List <List <int>> para retornar o tipo IList <IList <int>>

Pente

Para passagem de ordem de nível, por que essa exceção ocorre? A seguinte exceção ocorre:

Não é possível converter implicitamente o tipo ' System.Collections.Generic.List<System.Collections.Generic.List<int>>' em ' System.Collections.Generic.IList<System.Collections.Generic.IList<int>>'. Existe uma conversão explícita (falta um elenco?)

public IList<IList<int>> LevelOrder(TreeNode root) 
{
    var result = new List<List<int>>();
    var que = new Queue<TreeNode>();

    //if(root==null) return result;

    que.Enqueue(root);
    while(que.Count!=0)
    {
        int n = que.Count;
        var subList = new List<int>();
        for(int i=0;i<n;i++)
        {
            if(que.Peek().left!=null) 
                que.Enqueue(que.Peek().left);
            if(que.Peek().right!=null)
                que.Enqueue(que.Peek().right);
            subList.Add(que.Dequeue().val);
        }
        result.Add(subList);
    }
    return  result;
}
Grax32

Basta alterar a declaração do seu resultado para List<IList<int>>.

List<T>implementa IList<T>, mas List<List<T>>não implementa IList<IList<int>>. Os parâmetros genéricos não são covariantes ou contravariantes, a menos que definidos dessa forma e IList<T>não são, portanto, o tipo deve corresponder exatamente.

public IList<IList<int>> LevelOrder(TreeNode root)
{
    var result = new List<IList<int>>();
    var que = new Queue<TreeNode>();

    //if(root==null) return result;

    que.Enqueue(root);
    while (que.Count != 0)
    {
        int n = que.Count;
        var subList = new List<int>();
        for (int i = 0; i < n; i++)
        {
            if (que.Peek().left != null)
                que.Enqueue(que.Peek().left);
            if (que.Peek().right != null)
                que.Enqueue(que.Peek().right);
            subList.Add(que.Dequeue().val);
        }
        result.Add(subList);
    }
    return result;
}

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Não é possível converter o tipo de fonte 'List <Person>' para IList <ISomething>

IList <IList <int>> não aceita List <List <int>>?

Não é possível converter a Tarefa <List <TEntity>> para Task <IList <TEntity>>

Não é possível converter o tipo 'System.Collections.Generic.List <>' em 'System.Collections.Generic.IList <>' c # MongoDB

Não é possível converter a classe expandida para IList

Java "Incompatibilidade de tipo: não é possível converter de int [] [] para int" ao retornar matriz copiada

Não é possível converter implicitamente o tipo `string 'em` System.Collections.Generic.List <int>'

Converter IList <IList <object>> para a forma List <List <object>>

Não é possível converter o valor do tipo 'Int' para o tipo de argumento esperado '_?'

Não é possível converter o valor do tipo 'Int' para o tipo bruto 'DarwinBoolean'

SwiftyJSON & Swift 3: Não é possível converter a expressão de retorno do tipo 'Int32?' para retornar digite> 'Int?'

Não foi possível enviar o valor inteiro na pilha. Não é possível converter char para int

Não é possível converter implicitamente o tipo 'int' em 'System.Collections.Generic.List <QuickTest.Stock>'

Erro: CS0029 Não é possível converter implicitamente o tipo 'System.Collections.Generic.List <int>' em 'X'?

Como converter (Inteiro, Int, Int) em Dia. Não foi possível combinar o tipo esperado 'Dia' com o tipo real '(Inteiro, Int, Int)'

Não é possível converter implicitamente o tipo Generic.List para o tipo de modelo

Não é possível converter o valor do tipo 'Int64?' para o tipo de argumento esperado 'Int'

Não é possível converter o valor do tipo 'Int?' para o tipo de argumento esperado 'Binding <Int>' SwiftUI

Não é possível converter o valor do tipo 'Int' para o tipo de argumento esperado 'Int' em genérico

Swift: Não é possível converter o valor do tipo 'Range <Int>' para o tipo especificado 'Int'

Não é possível converter o tipo 'TEnum' em 'int'

Não é possível converter implicitamente o tipo em int []

Tipo incompatível: não é possível converter de Object Array para int

Não é possível converter implicitamente o tipo List << tipo anônimo: .. >> para IEnumerable <Product>

Não é possível converter implicitamente o tipo `int 'para' bool '

async / await: Não é possível converter implicitamente o tipo 'void' para 'int []'

Diferença entre duas datas - Não é possível converter o tipo 'int?' para 'System.TimeSpan'

Não é possível converter implicitamente o tipo 'string' em 'int' para comparar 2 variáveis

Não é possível converter implicitamente o tipo 'int' em 'string' para uma matriz de string

TOP lista

quentelabel

Arquivo