我需要使用另一個過濾器名稱和值列表過濾強類型StaffingPositionsDataContract的列表。我有這兩個列表:如何使用列表<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。以下是我使用的僅適用於字符串過濾器的內容。
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();
}
這裏是如何,這是獲得所謂:
var filteredPositions = staffingPositionResponse;
deserializedObject.ForEach(delegate(SerializedForm filters)
{
filteredPositions = _GetFilteredList<StaffingPositionsDataContract, string>(staffingPositionResponse, filters.name, new List<string> { filters.value });
});
任何人都知道我可以用deserializedObject對象篩選staffingPositionResponse類?
(重新評論) - 你能舉一個你如何調用它的例子嗎?什麼是價值?它適用於整數,字符串和浮點數... – 2009-06-04 17:48:00