2009-09-18 7 views
0

음, Mamamia라는 개체가 있는데 그 안에는 문자열 속성이 있습니다. 이 개체의 목록을 만들고 150 개의 항목으로 채 웠습니다.사용자 지정 개체 목록의 FindAll

List.FindAll을 사용하려고하는데, 어떻게해야할지 모릅니다.

produto = products.FindAll(delegate(Mamamia cv) {return cv.LocalPackage.Remove(1,21) == cmbPackage.SelectedValue}; 

내가 대리자가 왜, 난 그냥 인터넷에서 다른 코드를 복사하려 모르는 :이 방법을 시도했습니다.

미리 감사드립니다.

답변

1

위임자는 테스트중인 값이 원하는 값인지 확인할 수 있습니다. Remove에 대한 전화는 비록 그것이 가치를 돌연변이시키고있는 것처럼 걱정스럽게 보입니다 - 당신이 목록을 조사 할 때 그것은 거의 좋은 일이 아닙니다. 나는 그것이 당신이 쫓아 오는 것이 아니라고해도 문자열이 그렇다면 너무 나쁘지는 않다고 생각합니다 ...

어떤 유형이 관련되어 있으며 무엇을 찾고 있습니까? 오, C# 3 및/또는 .NET 3.5를 사용하고 있습니까? 그러면 .NET 2.0에 비해 C# 3조차도 익명 메서드 대신 람다 식을 사용할 수 있습니다.

현재 코드를 실행하면 어떤 현상이 발생합니까? 아무것도 찾지 못했다면 일 것입니다. 참조 용으로 테스트 중이기 때문일 것입니다 (SelectedValueobject 인 경우).

이 시도 :

produto = products.FindAll(delegate(Mamamia cv) { 
    return cv.LocalPackage.Remove(1,21).Equals(cmbPackage.SelectedValue); 
}); 

편집 :

당신은 단지 하나의 값을 원하는 것 같은데, 당신은 .NET 3.5을 사용하는 경우는 처음에 LINQ를 사용하는 것이 더 관용적 것 장소. 내가 사용하는 것이 : 나는 .NET 3.5을 사용하고 있는데 나는이 코드를 실행하면, 나는 오류 받고 있어요

string selectedText = (string) cmbPackage.SelectedValue; 
Mamamia item = products.FirstOrDefault 
        (cv => cv.LocalPackage.Remove(1,21) == selectedText); 
if (item != null) 
{ 
    // Found it; otherwise item will be null 
} 
+0

: 암시 적으로 변환 할 수 없습니다를 유형 'System.Collections.Generic.List 'to'FindMSIProducts.Mamamia Mamamia 객체 목록 안에서 속성을 찾고 있습니다 –

+1

@Felipe :'proxuto' 변수가'List '입니까 아니면'Mamamia' 그 자체입니까? 단일 항목을 리턴하기 원한다면'FindAll'보다는'Find' 메소드를 사용하십시오. 여러 항목을 반환하려는 경우'produto '의 유형을'List '으로 변경하십시오. – LukeH

+0

produto는 Mamamia 개체이며 제품은 List 입니다.이 목록에는 중복 된 항목이있을 수 있으며 모두 반환하려고합니다 –

관련 문제