我有一个List<bool>.我需要获取前n项的索引,其中item value = true.
例如以下列表项(bool)
10011001000
TopTrueIndexes(3) = The first 3 indexes where bits are true are 0, 3, 4
TopTrueIndexes(4) = The first 4 indexes where bits are true are 0, 3, 4, 7
Run Code Online (Sandbox Code Playgroud)
我怎么能为此写一个lambda?
Jon*_*eet 33
好吧,假设你有一些容易识别的条件,你可以做这样的事情,这将适用于任何 IEnumerable<T>:
var query = source.Select((value, index) => new { value, index })
.Where(x => x.value => Condition(value))
.Select(x => x.index)
.Take(n);
Run Code Online (Sandbox Code Playgroud)
(显然要填写Where条款的相应位.如果它只是一个List<bool>它可能只是x => x.value.)
最重要的位是您使用的过载Select拿到指标/值对之前的Where,然后又Select得到公正的指标后的Where...并使用Take只得到第一个n结果.
| 归档时间: |
|
| 查看次数: |
23115 次 |
| 最近记录: |