2016-07-08 6 views
-2

私はリストVehiclesにいくつかの文字列プロパティを持っています。 私は別のリストfilterListを持っています。ここでユーザーは彼が望むプロパティを選択します。 filterValuesには、ユーザーが選択したプロパティの値を指定する必要があります。 どうすればよいですか?Linqリストから選択する

これまでのところ、私はこのような何かを考えてきました:

var filterValues = =new List<string>(); 
foreach(var filter in filterList) 
{ 
    filterValues = vehicles.Select(x=>x. + filter).ToList(); 
} 

しかし、この後filterValuesからすべての項目がx.filterが含まれています。 ありがとう!

+0

あなたのVehicleクラスだろうと仮定は 'FilterValues'を選択するプロパティを持つリストすることになっていますか? 'vehicles'要素タイプの定義を示してください。 – Codor

+0

照会しているクラスのプロパティであるネストされたリストを参照するには、SelectMany()を使用します。 https://msdn.microsoft.com/en-us/library/bb534336(v=vs.100).aspx – Fredrik

+0

FilterValuesは、プロパティのすべての値を持つと仮定します。 – RobertRPM

答えて

1

私はこれが

public class Vehicle 
{ 
    public string Foo {set; get;} 
    public string Bar {set; get;} 
} 


var filterValues = new List<string>(); 
vehicles.Select(x => filterValues.Any(f => f.Contains(x.Foo) || f.Contains(x.Bar)) 
        .ToList(); 
+0

filterValuesに含める必要があるプロパティは、ユーザーによって導入されます。 – RobertRPM

+0

@RobertRPMこれは問題ないでしょうし、このソリューションで動作します。宣言の後でfilterValuesに追加してください。 – Kahbazi

+0

'filterValues.Any(f => f.Contains(x.Foo)|| f.Contains(x.Bar))' – Sherlock

関連する問題