Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LINQ (Language-Integrated Query) > LINQ запрос


Автор: blackwitcher 6.7.2015, 23:22
Всем привет, сделал запрос, отражает только первую часть кода, а вторую - нет, а нужно чтобы все smile 
Код

    public static void ShowDoTest()
        {
           var listDoTest = new List<DoTest>
            {
                new DoTest
                {
                    TestName="Test for .Net students",
                    User="Yaroslav",
                    Result=20,
                    TimeResult=50
                },
                new DoTest
                {
                    TestName="Test for .Net students",
                    User="Dima",
                    Result=35,
                    TimeResult=22
                },
                new DoTest
                {
                    TestName="Test for .Net students",
                    User="Oleg",
                    Result=15,
                    TimeResult=22
                },
                new DoTest
                {
                    TestName="Test for JS students",
                    User="Oksana",
                    Result=35,
                    TimeResult=25
                },
                new DoTest
                {
                    TestName="Test for JS students",
                    User="Yaroslav",
                    Result=5,
                    TimeResult=20
                },
            };
            Console.WriteLine("List of people who have passed the tests");
            var listTest = (from DoTest in listDoTest where DoTest.Result >= 20 select DoTest.User);
            foreach (var test in listTest)
            {
                Console.WriteLine(test);
            }
            var listTest2 = (from DoTest in listDoTest where DoTest.Result >= 20 && DoTest.TimeResult <= 20 select DoTest.User);
            foreach (var test2 in listTest2)
            {
                Console.WriteLine(test2);
            }
        }
    }

Автор: Экскалупатор 9.7.2015, 10:03
Посмотри внимательнее на условия.
В первом запросе под условие
DoTest.Result >= 20
 попадают три первых: Yaroslav Dima Oksana.

А под второе условие
DoTest.Result >= 20 && DoTest.TimeResult <= 20
 не попадает никто.
Вот и выводится три человека, и больше никого. Мог бы попасть последния ярослав, но у него результат 5, а по условию должно быть больше либо равно 20

Автор: blackwitcher 9.7.2015, 23:58
спасибо, понял))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)