In C# e Vb.net, è in qualche modo senza iterare da un loop a un bitarray per controllare il continere qualsiasi valore vero o falso (Dotnet 2.0)?Come controllo bitArray contiene un valore vero o falso?
risposta
Dubito che ci sia alcun modo si potrebbe farlo senza un ciclo sotto il cofano (come BitArray
può essere arbitrariamente lungo, a differenza BitVector32
), ma se si don' t vuole scrivere voi stessi:
var hasAnyTrue = input.Cast<bool>().Contains(true);
var hasAnyFalse = input.Cast<bool>().Contains(false);
Non so se è possibile farlo utilizzando un BitArray, ma se si utilizza un int, long ecc., Quindi controllare se è maggiore di 0 (per vero) o inferiore al valore massimo di il tipo di dati (per falso) che lo farebbe.
quindi qualcosa di simile:
bool IsTrue (int bitArray)
{
return bitArray != 0;
}
bool isFalse (int bitArray)
{
return bitArray != int.MinValue;
}
infatti, che stava per essere il mio suggerimento troppo ammesso che getta ok. – Ian
BitArray è un tipo. Non è un 'int'. –
Sì, ma come hai detto tu non c'è davvero un modo per controllare i valori senza fare un ciclo. Stavo solo offrendo un modo di controllare un array di bit, non necessariamente usando il tipo BitArray. – kemiller2002
indicizzazione nel BitArray
e controllare i singoli boolean
valori è una soluzione ovvia. Se sei preoccupato per le prestazioni, dovresti innanzitutto considerare la creazione della tua astrazione, ma se preferisci utilizzare BitArray
per la maggior parte delle operazioni, puoi eseguire il controllo utilizzando CopyTo
su un valore int[]
della dimensione corretta (Count >> 5
) e quindi eseguire controlli zero o non nulli su questi inte in modo appropriato.
Se si utilizza la classe BitArray da System.Collections, è possibile utilizzare il seguente codice per determinare se qualcosa è vero.
C# versione
var anyTrue = myArray.Cast<bool>().Any(x => x);
VB.Net Versione
Dim anyTrue = myArray.Cast(Of Boolean)().Any(Function(x) x)
Qualsiasi vantaggio nel non andare con il più semplice '.Contains (true)' invece di 'Any'? In realtà, questo era il modo in cui l'avevo fatto inizialmente, ma mi è venuto in mente 'Contains' e l'ho cambiato perché non riuscivo a trovare alcun motivo specifico. Idee? –
- 1. Excel: CERCA.VERT che restituisce vero o falso?
- 2. .net referenceversion specifica vero o falso?
- 3. Perché restituire vero o falso dalle funzioni?
- 4. TSQL per tornare NO o SI, invece VERO o FALSO
- 5. Angularjs - Mostra vero/falso come si/no
- 6. ImageMagick installato, vero o falso, come verificare? PHP
- 7. PHP booleano VERO/FALSO?
- 8. Ottenere valore asp.net CheckBox via jquery (vero/falso)
- 9. Come selezionare vero/falso in base al valore della colonna?
- 10. meteora recupera il valore vero/falso dal checkbox switchChange
- 11. Perché O di Javascript restituire un valore diverso da vero/falso?
- 12. Regex.test() sta dando un vero sequenziale falso?
- 13. Tipo di campo dati appropriato per valore vero/falso?
- 14. Modo efficace di conteggio Vero e Falso
- 15. sostituire vero/falso in DataGridView Colonne
- 16. LINQ query in cui il valore booleano è vero o falso
- 17. Come posso memoizzare un metodo che può restituire vero, falso o nulla in Ruby?
- 18. C'è una differenza tra SÌ/NO, VERO/FALSO e vero/falso nell'obiettivo-c?
- 19. Perché questo restituisce falso e vero?
- 20. Come convertire "0" e "1" in falso e vero
- 21. Perché "non (Vero) in [Falso, Vero]" restituisce False?
- 22. Perché usare `return x == 5? vero: falso; `?
- 23. Come determinare se esiste una corrispondenza e un ritorno vero o falso nei binari?
- 24. NSUserDefaults contiene valore o no?
- 25. Valore restituito o falso con il metodo TryGetValue
- 26. Perché {} == {} è falso, ma {} + {} == {} + {} è vero
- 27. creare una serie di casuali Vero/Falso
- 28. Impostazione valore falso contro la rimozione di un attributo
- 29. Falso o Nessuno contro Nessuno o Falso
- 30. meteor se il documento esiste restituisce vero/falso
usa .Any() che è più leggibile – juFo