Вы можете использовать расширение OfType<T>
LINQ для фильтрации коллекции только для экземпляров T
.
Contactcollection.OfType<T>();
Однако вместо List<object>
вы можете просто использовать List<T>
в этом случае.и избегайте всех приведений :-).
Task<IEnumerable<T>> GetAllEntityRecords<T>(string URI, string authorization) where T : new()
{
JEnumerable<JToken> children = Raw.Children();
var results = new List<T>();
foreach (JToken child in children)
{
var result = JsonConvert.DeserializeObject<T>(child.ToString());
results.Add(result);
}
Contactcollection = new List<object>(results.OfType<object>());
return results;
}
Однако вопрос в том, почему ваше свойство Contactcollection
имеет тип List<object>
.Если вы знаете, что он будет содержать контакты, почему бы не использовать явную типизацию вместо шаблонов?А если это не так, было бы лучше назвать его по-другому, а затем просто назначить его в конце метода, если вам нужно сохранить его, как я продемонстрировал в конце моего примера.
Наконец, обратите вниманиечто вам не нужно создавать new
экземпляр T
перед десериализацией.JsonConvert
автоматически создаст экземпляр типа.