0

このアプローチに関係なく、任意のソリューションを高く評価します。

foreach(var x in xs){
    var y = getValuesfromX(x);

    foreach(var yvalue in y){

        //Here I want if(yvalue is LESS than 100 and if (yvalue - previousyvalue) not   GEATER than 30){

       // perform action

        //else, quit looping xs am not interested anymore after the difference reached 30
4

1 に答える 1

2

演算子を使用する方法はいくつかありますがZip、それ以外の場合は、前の値 (または次の値の制限) を変数として保持するのがおそらく最も簡単です。

foreach (var x in xs)
{
    var ys = GetValuesForX(x);
    int limit = int.MaxValue; // Any value is fine to start with.
    foreach (var y in ys)
    {
        if (y > limit)
        {
            break;
        }
        if (y < 100)
        {
            // Take some action 
        }
        limit = y + 30;
    }
}

これは問題を引き起こすことに注意してyくださいint.MaxValue - 30

于 2013-06-27T06:25:12.293 に答える