正如标题所说,我需要一个LINQ表达式,它只会检查数组的少数索引。我现在有这样的话:
int[] a = b.Where(c => c % 4 == (int)Cards.CardSuits.Club).ToArray();
那些不是我的实际变量名称我只是缩短了一点。
我只需要检查b[2]
最多b[b.length-1]
答案 0 :(得分:7)
如果要在谓词中使用索引而不是值,请使用#include "CmdHelp.h"
#include <iostream>
#include <string>
using namespace std;
CmdHelp::CmdHelp() {
setLabel("HELP");
setUsage("/help");
setDescription("Shows the help screen!");
cmds.push_back((Command) *this);
}
void CmdHelp::run() {
cout << cmds[0].getLabel() << endl;
}
的重载,该重载接受检查值/索引对的谓词:
Where
(我强烈建议您使用不同的模型卡 - 考虑结构或具有int[] a = b.Where((value, index) => index % 4 == (int) Cards.CardSuits.Club)
.ToArray();
和Suit
属性的类。然后您可以检查该套装是否是中的球杆很多更自然的方式......)
如果实际上希望保留现有的过滤器,但忽略源的前两个元素,则可能需要Rank
:
Skip
答案 1 :(得分:1)
你说你只需要检查b [1]到b [b.length-1],所以你只是跳过第一个(“[0]”)元素,对吧?为此,请做到这一点:
b.Skip(1).Where(...)