厳密に型指定されたStaffingPositionsDataContractのリストを、フィルタ名と値の別のリストでフィルタリングする必要があります。私はこれらの2つのリストを持っています:List <String>変数で厳密に型指定されたリストをフィルタリングするには
List<SerializedForm> deserializedObject = JsonConvert.DeserializeObject<List<SerializedForm>>(searchFilters).Where(x => !string.IsNullOrEmpty(x.value) && !string.Equals(x.value.ToUpper(), "ALL")).ToList();
List<StaffingPositionsDataContract> staffingPositionResponse = new StaffingPositionsDataContract().LoadMockData();
deserializedObjectには2つのプロパティがあります。 1:「名前」、2:「値」。これらのプロパティは、異なるプロパティを持つ複数の異なるクラスをフィルタ処理できる必要があります。 StaffingPositionsDataContractが現在フィルタリングされている場合はint型またはdecimal型またはfloat型ではなく、文字列である場合に機能するメソッドがあります。以下は、私が使用しているのは、文字列フィルタのみで動作するものです。
var filteredPositions = staffingPositionResponse;
deserializedObject.ForEach(delegate(SerializedForm filters)
{
filteredPositions = _GetFilteredList<StaffingPositionsDataContract, string>(staffingPositionResponse, filters.name, new List<string> { filters.value });
});
誰もが私はdeserializedObjectオブジェクトとstaffingPositionResponseクラスをフィルタリングすることができます方法を知っている:ここでは
private static List<T> _GetFilteredList<T, U>(IList<T> ListToFilter, string PropertyToFilterOn, List<U> FilterValues)
{
ParameterExpression p = Expression.Parameter(typeof(T), "x");
Func<T, U> select = Expression.Lambda<Func<T, U>>(
Expression.Property(p, PropertyToFilterOn), p).Compile();
return ListToFilter.Join(FilterValues, select, u => u, (t, u) => t).ToList();
}
はそれが呼ばなっている方法ですか?
- あなたはそれを呼び出す方法の例を与えることができますか?値は何ですか?私はint、文字列、浮動小数点で私のために働いた... –