0

私はラムダ式を書く初心者で、次の問題があります。

List<int> lifeField;
I want to find index of those members, that correspond to next condition:
(((number % (10 * currentMove)) == 1) || ((number % (10 * currentMove)) == 2))
where number is member of List and currentMove is integer - 0,1,2

例えば:

if it is first move
currentMove = 0
I search number 1 or 2 
if it is second move 
I search numbers 11,21

……これをラムダでここに書く方法を見つけたい....または他の関数で

int indexOfLife = Array.FindIndex(lifeField, ?????????);
4

3 に答える 3

4
var indexes = lifeField.Select((x,i) => new {Index = i, Element = x})
    .Where(x => 
        ((x.Element % (10 * currentMove)) == 1) || 
        ((x.Element % (10 * currentMove)) == 2))
    .Select(x => x.Index)
    .ToList();
于 2013-01-12T10:54:40.893 に答える
0

currentMove を 0 にすることはできません。DivideByZeroException

  var ints = Enumerable.Range(1,100).ToArray();
  int currentMove = 1;
  var output = ints.Where(number => number % (10 * currentMove) == 1 || (number % (10 * currentMove))==2);
于 2013-01-12T10:54:38.350 に答える
0

FindIndexPredicateは、要素を取り、 を返す式であるaを取りますbool

したがって、次のようなものが必要です。

number => (
  ((number % (10 * currentMove)) == 1)
  ||
  ((number % (10 * currentMove)) == 2)
)
于 2013-01-12T10:52:36.553 に答える