c#相当于Numpy Where

时间:2016-03-31 19:24:07

标签: c# boolean boolean-expression

如何展开以下示例以返回bool数组:

例如;

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 );

获得结果= { 2 },它是满足各自条件的所有三个数组的索引

预期结果:{False, False, True, False} - &gt;这个结果如何形成。

目前使用的方法(详细不整齐):

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;
                }
            }

参考:[1]

1 个答案:

答案 0 :(得分:3)

而不是Where()来过滤集合,使用Select()投影结果:

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