У меня есть простой класс с некоторыми свойствами, и я хотел бы иметь возможность выставить метод select
, чтобы вернуть другой объект (как и метод выбора linq). Например:Custom Select Projection
class Person
{
public string Name{get; set;}
public string Address {get; set;}
public string City {get; set;}
public TItem SelectProjection(..);
}
Person p = new Person();
var other = p.SelectProjection(p => new { p.Name, p.City});
Возможно ли это?
@@ EDIT
Я пользовательский класс для бизнес-логики, но я разоблачить IList
только не его поддерживать мой код развязкой (не IQueryable
). Итак, если вы хотите выполнить некоторую проекцию вы можете заполнить свою строку свойства с запятой разделителем:
BusinessClass.SelectFields = "Name, Surname, City";
Но, кстати, это просто манипуляция неправильное имя свойство, так что я предпочитаю лямбда:
BusinessClass.SelectField = p => new {p.Name, p.Surname, p.City};
Так почему бы не назвать Select? –
Не могли бы вы описать, что вы пытаетесь выполнить немного больше? В настоящее время неясно, чего вы хотите достичь, и почему вы не просто используете метод select, как предлагает @PanagiotisKanavos. – Kevin
Вы не отключаете ничего, если вы предоставляете IList вместо IQueryable, совсем наоборот. IList - более конкретный интерфейс, чем IQueryable, плюс IList подразумевает, что выбор уже выполнен, в то время как IQueryable позволяет отложить выполнение –