使用 LINQ 返回与条件匹配的数组索引的简洁方法
我想返回满足条件的数组中的所有索引。我想出了
myarray
.Select((p,i) =>
{
if (SomeCondition(p)) return i;
else return -1;
})
.Where(p => p != -1);
我知道我可以编写一个扩展方法或使用循环来完成它,但我想知道 LINQ 中是否内置了一些我不熟悉的东西。如果这很微不足道,请道歉
I want to return all of the indices from an array where a condition is met. I've come up with
myarray
.Select((p,i) =>
{
if (SomeCondition(p)) return i;
else return -1;
})
.Where(p => p != -1);
I know I can write an extension method or do it with a loop, but I was wondering if there was something built into LINQ that I'm unfamiliar with. Apologies if this is trivial
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
就我个人而言,我会这样做:
Personally, I'd go with this:
当我阅读问题的文本而不是示例时:
您真的需要那些
-1
吗?When I read the text of the question and not the sample:
Do you really need those
-1
s ?我可能会编写一个扩展方法,但如果我选择不这样做,我会这样做:
这正是您已经在做的事情,但不太冗长,因为它使用三元 if 运算符而不是
if
/else
块。I would probably write an extension method, but if I chose not to, I would do this:
It's exactly what you are doing already, but less verbose since it uses the ternary if operator instead of the
if
/else
block.