2016-03-31 10 views
-1

Wie kann ich das folgende Beispiel erweitern, um ein Array von bool zurückgeben:C# Entsprechung von Numpy Wo

Zum Beispiel;

int[] data = { 1, 2, 5, 6 }; 
int[] data1 = { 2, 4, 6, 1}; 
int[] data2 = { 3, 2, 3, 0}; 
var results = Enumerable.Range(0, data.Length).Where(i => data[i] > 2 && data1[i] < 7 && data2[i] > 1); 

erhaltenen Ergebnisse = { 2 }, die der Index auf allen drei Arrays erfüllen ihre jeweiligen Bedingungen

Strebtes Ergebnis: {False, False, True, False} -> Wie kann das Ergebnis Form.

Derzeit verwendete Methode (verbose nicht rein):

for(int j = 0; j < h1.Length; j++) 
      { 
       if (h1[j] < 0.0 && h2[j] > 0.0 && h3[j] > threshold == true) 
       { 
        result[j] = true; 
       } 
       else 
       { 
        result[j] = false; 
       } 
      } 

Referenz: [1]

Antwort

3

Statt Where() die Sammlung zu filtern, verwenden Sie Select() die Ergebnisse zu projizieren:

var results = Enumerable.Range(0, data.Length).Select(i => data[i] > 2 && data1[i] < 7 && data2[i] > 1); 
Verwandte Themen