Судя по вашим комментариям, похоже, что вы хотите удалить некоторые свойства из своих Person
объектов, выбрав лишь некоторые из них.
Это один из способов сделать это:
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
// This property will be stripped
public string OtherProperty { get; set; }
public override string ToString()
{
return $"{nameof(FirstName)}: {FirstName}, {nameof(LastName)}: {LastName}, {nameof(Age)}: {Age}, {nameof(OtherProperty)}: {OtherProperty}";
}
}
internal class Program
{
static IEnumerable<Person> StrippedPersons(IEnumerable<Person> source)
{
// Selects only some of the properties that you want to return
return source.Select(x => new Person
{
FirstName = x.FirstName,
LastName = x.LastName,
Age = x.Age
});
}
private static void Main(string[] args)
{
var list1 = new List<Person>()
{
new Person
{
Age = 10,
FirstName = "First",
LastName = "Last",
OtherProperty = "THIS WILL BE DISCARDED"
}
};
Console.WriteLine(string.Join("\n", list1));
var list2 = StrippedPerson(list1).ToList();
Console.WriteLine(string.Join("\n", list2));
}
}
Результат:
Имя: Имя: Имя, Фамилия: Фамилия, Возраст: 10, Другое Свойство: ЭТО БУДЕТ ОТКЛЮЧЕНО
Имя: Имя: Имя: Фамилия: Фамилия, Возраст : 10, OtherProperty:
Если вы хотите, чтобы это было как-то динамично, c в том смысле, что вы хотите передать имя необходимых свойств в качестве параметра вашему методу вместо того, чтобы иметь их жестко запрограммированы, нам может потребоваться использовать отражение, и лучше отредактировать ваш вопрос.