문제

나는 C#3.0의 새로운 물건을 가지고 놀고 있으며이 코드가 있습니다 (주로 가져 왔습니다. MSDN) 그러나 나는 진실, 거짓, 진실한 것만 할 수 있으며 실제 가치가 아닙니다.

        int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

        var oddNumbers = numbers.Select(n => n % 2 == 1);

        Console.WriteLine("Numbers < 5:");
        foreach (var x in oddNumbers)
        {
            Console.WriteLine(x);
        }

정수 목록을 표시하려면 어떻게 수정 할 수 있습니까?

도움이 되었습니까?

해결책

"선택"을 "여기서"로 변경하십시오.

    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var oddNumbers = numbers.Where(n => n % 2 == 1);

    Console.WriteLine("Odd Number:");
    foreach (var x in oddNumbers)
    {
        Console.WriteLine(x);
    }

"SELECT"메소드는 각 요소에 대한 새로운 LAMBDA 결과 목록을 작성하고 있습니다 (true/false). "여기서"방법은 람다를 기반으로 필터링됩니다.

C#에서는이 구문을 사용할 수도 있습니다.

        var oddNumbers = from n in numbers
                         where n % 2 == 1
                         select n;

컴파일러가 다음으로 변환됩니다.

var oddNumbers = numbers.Where(n => n % 2 == 1).Select(n => n);

다른 팁

numbers.Select(n => n % 2 == 1);

이것을 변경하십시오

numbers.Where(n => n % 2 == 1);

Select는 한 가지를 "변환"하는 것입니다. 따라서이 경우 "n을"n % 2 == 1 "(부울)로 변환합니다. 따라서 모든 진실과 허위를 얻습니다.

일반적으로 사물에 속성을 얻는 데 사용됩니다. 예를 들어 목록이있는 경우 Person 물체, 그리고 당신은 그들의 이름을 얻고 싶었습니다.

var listOfNames = listOfPeople.Select( p => p.Name );

당신은 이것을 그렇게 생각할 수 있습니다.

  • 다음 방법을 사용하여 사람들의 목록을 문자열 목록으로 변환하십시오. (p => p.name)

컬렉션의 하위 집합을 ""필터링 "으로 선택한"( "필터링"에서 선택)하려면 어디에서 사용해야합니다.

끔찍한 이름 지정에 감사드립니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top