3

我有这个 LINQ 查询,它返回数组中所有项目的索引,其时间值(即 a double)满足以下查询中的特定条件。

var sonicIndices = completeLog.Select((item, index) => new { Item = item, Index = index })
            .Where(x => Math.Abs(x.Item.time - nullValue) > 0.001)
            .Select(item => item.Index).ToArray();

我很确定这可以改进,但是如何改进呢?我难住了。任何人都可以帮助我吗?

4

2 回答 2

5

我看不出有什么特别的问题,它需要以什么方式变得更好?如果您想要此类事情的可重用方法,请参阅:Getting a collection of index values using a LINQ query

于 2012-05-02T11:50:30.097 回答
3

不是改进,而是做同样事情的另一种方式:

var sonicIndices = Enumerable.Range(0, completeLog.Length)
                   .Where(i => Math.Abs(completeLog[i].time - nullValue) > 0.001)
                   .ToArray();
于 2012-05-02T11:53:26.790 回答