Pergunta

Eu tenho uma mesa onde um disco se parece com isso

varchar(255) Name  
varchar(255) Text  
varchar(255) Value 

Nome é o nome DDL, o texto é o que é exibido e o valor é retornado na seleção. Existem entre uma e vinte opções para cada nome. Sem iterar, embora cada opção como um cursor, existe alguma maneira de retirar uma lista de objetos, um para cada nome DDL exclusivo, usando LINQ e C#?

Uma amostra dos dados:

Beds   '4 (10)'  4
Beds   '5 (1)'   5
Beds   '7 (1)'   7
Baths  'NA (13)' NULL
Baths  '0 (1)'   0
Baths  '1 (13)'  1

Eu estava pensando em fazer uma seleção externa para obter os nomes exclusivos, depois uma seleção interna para obter a lista de opções e retornar o conjunto como uma lista de um conjunto de listas.

Foi útil?

Solução

Claro, basta usar group ... by

var query = from item in context.TableName
            group item by item.Name;

Alternativamente, sem uma expressão de consulta:

var query = context.TableName.GroupBy(item => item.Name);

O resultado será um IQueryable<IGrouping<string, ItemType>>. Cada elemento no resultado será um agrupamento: Uma chave e uma sequência de itens com essa chave.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top