本帖最后由 gzw13999 于 2014-04-14 23:21:24 编辑

解决方案 »

  1.   

    bool[] conditions = new bool[] { p1, p2, p3, p4, p5, p6 };
    T Tinfo=list.FirstOrDefault(t.sid == 0 && t.Type == conditions.Select((x, i) => new { x, i = i + 1}).First(x => x.x).i);
      

  2.   


    似乎 还是t.Type == 3 的拿完后不会去拿 t.Type=4id-type
      

  3.   


    似乎 还是t.Type == 3 的拿完后不会去拿 t.Type=4id-type那是你的问题了。我是按照你的写的。你想怎么查询。说半天连测试数据,期待结果都不给,问毛。
      

  4.   


    似乎 还是t.Type == 3 的拿完后不会去拿 t.Type=4id-type那是你的问题了。我是按照你的写的。你想怎么查询。说半天连测试数据,期待结果都不给,问毛。
    Form1_Load循环中不是在添加测试数据吗?期待结果文字描述了。按照我写的我已经实现了干嘛还来问?脾气还不小啊。
      

  5.   


    似乎 还是t.Type == 3 的拿完后不会去拿 t.Type=4id-type那是你的问题了。我是按照你的写的。你想怎么查询。说半天连测试数据,期待结果都不给,问毛。
    Form1_Load循环中不是在添加测试数据吗?期待结果文字描述了。按照我写的我已经实现了干嘛还来问?脾气还不小啊。你是说了,问题是没有说清楚。
      

  6.   

    也就是p1 为true对应 t.Type == 1是false的则不管 依次类推,拿最近的一个条件为true的。
      

  7.   

    如果你觉得我没表达清楚请直说,好得一个技术论坛,别毛不毛的。我说的很直接啊。难道你对我的意思还有什么不理解的么?
    //条件
    bool   p1= false;
    bool   p2= false;
    bool   p3= true;
    bool   p4= true;
    bool   p5= false;
    bool   p6= true;
    p3,p4,p6为true对应查找条件 t.Type == 3    t.Type == 4   t.Type == 6期待结果:
    每取一次取到则删除并输出
    输出大概结果(格式 Id-Tpye)
    2-3
    5-4
    8-3
    10-6
    11-4
    就是拿最近一个t.Type符合条件的
    问题核心就是bool p1-bool p6 如何根据这个条件来决定对应的查找条件如p3,p4,p6为true对应查找条件 t.Type == 3    t.Type == 4   t.Type == 6
      

  8.   

    数据就是这样产生的。for (int a = 1; a < 100; a++)
                {
                    T  tInfo = new T
                    {
                        Id = a,
                        sid=0,
                        Type = new Random().Next(1, 7)
                    };
                    list.Add(T);
                    Thread.Sleep(20);
                }
      

  9.   

    大家的眼神都不错啊,我咋就不懂那个条件是什么个逻辑呢?
    猜猜这个结果 result 是什么类型的?
    int i = 1;
    int j = 2;
    bool b = true;
    var result = b || i >= j ? 1 : 2;