목록에서 작동하는 확장 방법이 있지만 원하는 작업이 여전히 명확하지 않습니다. 결과를 원하십니까 AddressList의 항목의 Type_ID가 98입니까? 그렇다면 Any 기능을 사용하십시오. 목록의 모든 주소가 모두를 사용하는 것보다 해당 유형 ID를 가져야하는 경우.
class Address
{
public int Type_ID { get; set; }
public Address(int Type_ID)
{
this.Type_ID = Type_ID;
}
}
class Entry
{
public List<Address> AddressList { get; set; }
public string UserName { get; set; }
public Entry(string name, List<Address> addresses)
{
AddressList = addresses;
this.UserName = name;
}
}
class EntryList
{
private List<Entry> entries;
public IEnumerable<Entry> GetAll(Func<Entry, bool> filter)
{
return entries.Where(filter).ToArray();
}
public EntryList(List<Entry> entries)
{
this.entries = entries;
}
}
static void Main(string[] args)
{
EntryList e1 = new EntryList(new List<Entry>()
{new Entry("Fred with 1 98 address", new List<Address> { new Address(97), new Address(98) }),
new Entry("Bob with no 98 address", new List<Address> { new Address(96), new Address(97) }),
new Entry("Jerry with all 98 addresses", new List<Address> { new Address(98), new Address(98) })});
var all98 = e1.GetAll(x => x.AddressList.All(y => y.Type_ID == 98));
var any98 = e1.GetAll(x => x.AddressList.Any(y => y.Type_ID == 98));
Console.WriteLine("Results for ALL:");
foreach (var e in all98)
Console.WriteLine(e.UserName);
Console.WriteLine("Results for ANY:");
foreach (var e in any98)
Console.WriteLine(e.UserName);
}
출력은 다음과 같습니다 :
주소가 주소 목록을 포함 무엇
Results for ALL:
Jerry with all 98 addresses
Results for ANY:
Fred with 1 98 address
Jerry with all 98 addresses
가 .. 그 형태 무엇인가가 .. 더 많은 코드를 TYPE_ID 속성을 제공하시기 바랍니다있다 않습니다 .. 여기에 몇 가지 예제 코드는 . –