C# (3.5)로 목록을 필터링하는 가장 좋은 방법을 찾고 있지만 상황과 비슷한 예제를 찾지 못하는 것 같습니다. 나는 람다 (lambdas) 또는 린크 (linq)를 사용하고 있습니다.C# 일반 목록 - FindAll on 하위 배열
내가 찾은 대부분의 예제에 비해 독특한 것은, ... 내 목록 항목 각각의 예를 들어 아이의 배열을 가지고있다
var employees= new List<Employee>
{
new Employee{Name = "John",Nicknames="'J','Big J','Big John'"},
new Employee{Name = "Joshua",Nicknames="'J','Josh','Joshman'"},
}
내가 그 필터링하고 싶습니다
이 같은 목록 뭔가 ...
//using linq
var matchesByNickname =
from worker in employees
where worker.Nicknames.Equals("J")
select worker;
//or lambda
var employees2 = employees
.Where(e => Nicknames.Exists(n => n.Nickname == "J"))
그러나
별명 자체 나는이 유형의 목록을 필터링하는 가장 좋은 방법이 될 것입니다 무엇 등 .Equals 또는 .Contains를 사용할 수없는 배열이기 때문에 당연히?업데이트 : 내 사례를 단순하게 유지하려고 할 때 나는 너를 조금 잘못 이끌었다. 목록 항목에는 문자열이 아닌 실제 객체 배열이 있습니다. 내 실제 예는 사용자 정의 제품 객체 목록입니다. 제품 오브젝트에는 Region 오브젝트의 목록 인 Regions 특성이 있습니다. 제품에는 1 개 또는 1 개 이상의 영역이있을 수 있습니다. region 객체에는 이름과 ID가 있습니다. 그래서 제가 정말로 원하는 것은 특정 지역에 할당 된 제품에 대한 제품 목록을 필터링하는 것입니다.
왜'Nicknames' 배열이나 목록을 만들 수 없습니다>? –
'Nicknames'는 배열이 아니라 문자열이라는 것을 알 수 있습니다. –