하나의 속성이 문자열 인 숫자 인 사람 목록이 있습니다. 해당 목록에서 2 개의 숫자 (범위)와 일치하는 모든 일치 항목을 찾고 싶습니다.
public class car
{
public string Name { get; set; }
public string No { get; set; }
}
public void test()
{
var myList = new List<car>
{
new car {Name = "Volvo", No = "10"},
new car {Name = "Volvo", No = "20"},
new car {Name = "Volvo", No = "30"},
new car {Name = "Volvo", No = "40"},
new car {Name = "Volvo", No = "50"},
new car {Name = "Volvo", No = "60"}
};
var startNumber = 10;
var EndNumber = 30;
}
어떻게 아니 내 인 myList에 모든 경기 필터링 할 수 있습니다 startNumber
와 EndNumber
?
숫자를 정수로 구문 분석 한 다음 범위를 비교해야합니다. 를 사용 Int.TryParse
하여 예외로부터 자신을 구할 수도 있습니다 . 파싱을 한 번 수행하려면 익명 유형을 만든 다음 다음과 같이 쿼리합니다.
int temp;
var query = myList.Select(r => new
{
Car = r,
NumericNo = int.TryParse(r.No, out temp) ? temp : 0 //or -1 for invalid values
})
.Where(r => r.NumericNo >= start && r.NumericNo <= end)
.Select(r => r.Car);
일반 명명 규칙을 따를 수도 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다