Pergunta

Eu tenho uma pergunta sobre a implementação eficiente. Vamos dizer que eu tenho duas matrizes:

One array is all possible items in a house: Table, Chair, TV, Fireplace, Bed

The other is an array of items in a particular house: Table, TV, Bed

Eu também tenho duas caixas de listagem:

1. listbox for items in the house - the "HAS" list box
2. listbox items not in the house - the "NEEDS" list box

Eu preciso para listar os itens já na casa em "TEM" caixa de listagem, bem como os itens que não estão na casa na caixa de listagem "necessidades". Parece-me que nested "para cada" loops seria um começo para resolver este problema, mas eu não estou exatamente certo que as necessidades caso a ser aninhados. Qual é a maneira mais eficiente de realizar uma tarefa como esta?

Foi útil?

Solução

var allItems = (new [] {"Table", "Chair", "TV", "Fireplace", "Bed"});
var hasItems = (new [] {"Table", "Chair"});

var hasList = hasItems.ToList();
var needsList = allItems.Except(hasItems).ToList();

Outras dicas

var allList = (new [] {"Table", "Chair", "TV", "Fireplace", "Bed"}).ToList();
var hasList = (new [] {"Table", "Chair"}).ToList();

var hasSet = new HashSet<string>(hasList);
var needsList = allList.Where(i => !hasList.Contains(i)).ToList();

Isso é ~ a solução mais rápida (pelo menos, em notação Big O ).

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