我有一个场景,我必须使用LINQ过滤对象的属性。
编辑: 我有合同 列表dtCntList = DTIsland.GenericHelper.ConvertArrayListToGenericList(getList(),true);
现在在合同中,我有各种财产。每份合同都有多个旅行 - >旅行有多次飞行。 我有一个场景,我必须选择合同中的所有航班号。
像: 有点像那样
var allFlightNumber =来自Cont in dtCntList [0]选择 dtCntList [0] .trips.dtFlight
或必须选择出境旅行
Var outBoundTrip =来自cont in dtCntList [0]其中cont.trip == 出站
但是我无法在DTContract对象上执行LINQ(dtCntList [0])
请帮助..
答案 0 :(得分:1)
我假设你有以下类层次结构,
class Contract
{
public List<Trip> TripsList { get; set; }
public Contract()
{
TripsList = new List<Trip>();
}
}
class Trip
{
public List<string> FlightNumbers { get; set; }
public Trip()
{
FlightNumbers = new List<string>();
}
}
首先是构建器方法(构造对象),
private Contract Build()
{
Contract contract = new Contract();
Trip trip = new Trip();
trip.FlightNumbers.Add("101A");
trip.FlightNumbers.Add("101B");
trip.FlightNumbers.Add("101C");
contract.TripsList.Add(trip);
trip = new Trip();
trip.FlightNumbers.Add("102A");
trip.FlightNumbers.Add("102B");
trip.FlightNumbers.Add("102C");
contract.TripsList.Add(trip);
return contract;
}
LINQ查找是否存在航班号,
Contract c = Build();
if (c.TripsList.Where(trip => trip.FlightNumbers.Contains("103B")).Any())
{
Console.WriteLine("Flight number 103B exists");
}
答案 1 :(得分:0)
有点难以猜出你的意思。 这是两种可能的解释:
var result1 = from item in yourList
where item.YourProperty=="SomeValue"
select item;
var result2 = from property in yourObject.GetType().GetProperties()
where property.Name =="SomeValue"
select property;