나는이 수업을 :LINQ를 사용하여 목록 목록에서 내부 목록을 검색 할 수 있습니까?
public class ZoneMember
// a zone member is a member of a zone
// zonemembers have ports, WWPNs, aliases or all 3
{
private string _Alias = string.Empty;
public string MemberAlias {get{return _Alias;} set{_Alias = value; } }
private FCPort _Port = null;
public FCPort MemberPort { get { return _Port; } set { _Port = value; } }
private string _WWPN = string.Empty;
public string MemberWWPN { get { return _WWPN; } set { _WWPN = value; } }
private bool _IsLoggedIn;
public bool IsLoggedIn { get { return _IsLoggedIn; } set { _IsLoggedIn = value; } }
private string _FCID;
public string FCID {get{return _FCID;} set{ _FCID=value; } }
}
public class Zone
{
public List<ZoneMember> MembersList = new List<ZoneMember>();
private string _ZoneName;
public string zoneName{ get{return _ZoneName;} set{_ZoneName=value;} }
public Zone(string n) { zoneName=n; }
}
public class ZoneSet
{
private string _ZoneSetName;
private int _VSANNum;
public string ZoneSetName{get{ return _ZoneSetName;} set{_ZoneSetName=value;} }
public int VSANNum{ get{ return _VSANNum;} set{_VSANNum=value;} }
public bool isActive;
public List<Zone> ZoneList = new List<Zone>();
}
내가 MembersList의 속성에 대한 특정 값을 갖는 영역 구성원을 가지고 성 존의 모든 영역을 찾고 싶어요.
I는 다음과 같이 작동합니다 알고있다 - 나는 WWPN 속성에서 검색하고,이 경우 :
// assumes myZoneSet has already been instantiated ad has zones in it
// and inputWWPN in the select statement has the value we want
List<Zone> myZoneList = new List<Zone>();
foreach (Zone z in myZoneset)
{
var zm=null;
zm = from member in z.MembersList where member.MemberWWPN == inputWWPN select member;
// if we find a matching member, add this zone to the list
if (zm != null)
{ myZoneList.Add(z);
}
}
전체 일을 LINQ를 사용하는 방법이 있나요? 나는 데이터베이스 용어로 사용되는 용어가 무엇인지 모릅니다. -
List<Zone> listOfZone = zoneSet.ZoneList.Where(e => e.Any(p => p.MemberWWPN == inputWWPN)).ToList();
작동하지 않을 경우 'e'는 외부 및 내부 람다 모두에서 정의 될 수 없습니다. – Nuffin
hummm ... right u r – atiyar
어때? :) – atiyar